: , , .
/* 9. : , , .*/
#include <stdio.h>
#include <math.h>
void in_arr(float *arr, int n); // n
void out_arr(float *arr, int n); // n
int array_processing(double *arr, int n, double *p sum, double *p prod);
/* s, p k " + "- , - . n <= 50.
: x = { 1, 2, -1, 2, -2, 3, -3 }, n=7. : s=5, p=6, k=2.
p sum, p prod, -. C : & *. & x " " x, *p x ", p x".
*/
float max2(float *arr, int n); //
// . : x = { 1, 5, 3, 0, -1, 2, 4}, n = 7, : = 6.
int max_eqw(float *arr, int n); //
// . : x = { 3, 1, 3, 0, 1, 1, 1, 1, 2}, n = 9, : 4.
main()
{ float x[50], p, s;
int i, k, n;
printf("\n n: ");
scanf("%d", &n);
in_arr(x, n);
printf(" \n %d: \n", n);
out_arr(x, n);
k = array_processing(x, n, &s, &p);
printf("\n \-\- %d x[i]>0, \
= %.3f, = %.3f ", k, s, p);
printf("\n - = %.3f ", max2(x, n));
printf("\n - = %.3f ", max_eqw (x, n));
} // main()
/* in_arr() out_arr() , arr [ i ] */.
void in_arr(float *arr, int n)
{ printf("\n %d : ", n);
for (int i = 0; i < n; i++)
scanf("%e", &arr[i]); // scanf("%e", arr++);
}
void out_arr(float *arr, int n)
{ for (int i = 0; i < n; i++)
{ printf(" %.3f ", x[i]); // printf(" %.3f ", *x++);
if ((i+1) % 8 == 0) // 8 :
printf("\n");
}
}
int array_processing(double *arr, int n, double *psum, double *pprod)
{ int i;
*psum = 0; *pprod = 1; k = 0, m = -1; //
for (m = 0; m < n; m++)
if (arr[m] < 0) break;
for (i = m+1; i < n; i++)
if (arr[i] > 0)
{ *psum += arr[i];
*pprod *= arr[i];
k += 1;
}
return k;
}
float max2(float *arr, int n)
{ float k; int k, m = 0;
for(int i = 0; i < n-1; i++)
|
|
for(k = i+1; k < n; k++)
if(fabs(x[i]-x[k]) > m) m = fabs(x[i] - x[k]);
return m;
}
int max_eqw(float *arr, int n)
{ int i, k=0, m=0;
for(i=0; i<n-1; i++)
if(x[i] == x[i+1]) m++;
else if(m > k) k = m, m = 0;
return k+1;
}
1. : , ?
2. ?
3. ? ?
4. arr[i] ?
5. : int [3] = {1, 2, 3, 4};?
6. : ) k- , ) m , ) .
7. : ) () , ) () .
8. 6 c .
9. m :
int m = 0, n = 10; // x[10] = { 1, 2, 2, 3, 4, 4, 5, 6, 6, 7 }
for(int i = 0; i < n - i; i++)
if(x[i]!= x[i+1]) m++; else m - -;