Вы находитесь на странице: 1из 13

5.

, :
1.
,
;
2.
.

()

.
. ,
() .

(, - ).
:
- ;
- , ;
- .
:
1. ;
2. ;
3. .

1.
:
42

n, A1 , A2 , ..., An .
.5.1.
a)

i=1
i =1 , n

i <=
n

A
A

A
i=i+1

. 5.1. . n, A1, A2, ... , An


while for:

) scanf ("%d", &n); i=1;


while (i<=n)
{
scanf ("%f", &a);
/* a */
...
i++;
}

) scanf ("%d", &n);


for (i=1; i<=n; i++)
{
scanf ("%f", &a);
/* a */
...
}

, a
43

(float),

%f.

int, %d.

( )
,

if.
2.
A1 , A2 , ... , An , W
(n ,

W - ),

,
. 5.2.
, :
) scanf ("%f", &a);
do
{ /* a */
...
scanf ("%f", &a);
}
while (a!=W);

) scanf ("%f", &a);


while (a!=W)
{ /* a */
...
scanf ("%f", &a);
}

W - ,
#define. ,
%d.

)
44

A
W

A
A
A
A

A
W

. 5.2. . A1, A2, ... , An, W


3. A1, A2, ... , An
, n -

(n >=0),

5.3.

.
A;
while ( )
{

A;
A;

}

Ctrl-Z Enter.

.

45

, scanf()
. ,
EOF, stdio.h -1.
C A,
.
while ( A A != W)
A;

while ( A )
A;

:
n
while (scanf(%f, &A) != EOF)
{ /* A */
...
}

s=0, i=1


in

1. n, A1 ,A2 , ... ,An .

a
,
|Ai | < i2.
s

|a|<i*i
:
n
/
1
6
2
4

s=s+a

1 -2 3 16 -5 40
-1 5 10 -20 i = i +1


=-4
=0

46 1
. 5.3.

:
#include <stdio.h>
#include <math.h>
main()
{
int n;
/* */
int a,
/* */
s=0,
/*
*/
i;
/* */
printf ("\n : ");
scanf ("%d", &n);
printf (" :\n");
for (i=1; i<=n; i++)
47

{
scanf ("%d", &a);
if (abs(a) < i*i) s=s+a;
}
printf ("=%d\n", s);
return 0;
}

:
: 6
:
1 -2 3 16 -5 40
=-4
: 4
:
-1 5 10 -20

=0
s=0, n=0
2. A1, A2, ... , An, W.

(W=0).

A1,
A2, ... , An.
.

: W

= 12.00

3.5

1.5

n 0 = 3.00

s=s+a
n++ . 5.2 ,
,

.
s, s/n


, .

. 5.4. 2
48

:
#include <stdio.h>
#define W
0
/* */
main( )
{
float a,
/*
*/
s = 0;
/*
*/
int n = 0;
/* */
printf("\n , \n");
scanf ("%f", &a);
while (a != W)
{ s += a;
n++;
scanf("%f", &a);
}
if (n != 0)
{ printf (" = %.2f\n", s);
printf (" = %.2f\n ", s/n);
49

}
else printf (" ");
return 0;
}

:
,
2 3.5 1.5 5 0
= 12.00
= 3.00
,
0

3.

Ctrl Z ( ).
.
:

/
1
2
3


1 -2 16.5
-1 15.5 10
5 -7 2.5

-5.3

40

5.3.


= 40
= 15.5
= 5

max .
.
max .

50

, max,
max .

:
/*
*/
/*
*/
#include <stdio.h>
main( )
{
float a, max;
/* , */
int k;
/*
*/
printf ("\n \n");
k = scanf("%f", &max);
/* 1-
*/
if (k < 1) printf ("\n \n");
else
{ while (scanf("%f", &x) != EOF )
if (x > max) max = x;
printf ("\n= %f\n", max);
}
return 0;
}

4. ,

.
1.
2.

:
:
:
:

-5 3.1 -2 1 -7
.
-5 3.1 -2 -1 7
.

5.3. .

:
pred

51


(,
). flag:
flag = 1 , 0 ,
: flag =1.
:
#include <stdio.h>
main( )
{
float apred, a;
int flag = 1;

/*
/*
/* flag=1- , 0
printf ("\n \n");
scanf("%f", &apred);
while( scanf("%f", &a)>0)
{ if (apred * a >= 0) flag = 0;
apred = a;
}
if (flag)
printf (" .");
else printf (" .");
return 0;

*/
*/
*/

}

1. .
2. -
.
3. .
5. .

1. n, A 1, A2 , ..., An .
Ak A1 , ..., An:
52

) 3 5;
)
;
) 2k < Ak < k! .
2. n, A1,A2,...,An.
:
)
A 1, A2 , ..., An ;
)
A 1, A2 , ..., An ;
) min (|A1 |, ..., |An |);
) min (A1 , A3 , ...) + max (A2 , A4 , ...);
) A1* A2 + A2 * A3 + ... + An-1 * An .
3. A1, A2, ... .
0.
) ,
5 7;
) ;
) ;
) min (A1+ A2 , A2 + A3 , ...);
) (A2 A1)*(A3 A2)* ... * (An - An-1);
) ;
) .
4.

A 1 , A2 ,

...

999.
) , .
) .
53

)
.
)
.

54