3.4.2 思考题
必要的储存量
#include <stdio.h>
#include <stdlib.h>
# define maxn 1000
void Count()/题1 统计个数
{
int ct = 0, n;
while(1 == scanf("%d", &n))
{
ct ++;
}
printf("%d", ct);
}
void MaxMinAve()
{
int max, min, sum = 0, n, ct = 0, first = 1;
while(1)
{
while(1 == scanf("%d", &n))
{
ct ++;
if(first) {max = min = n; first = 0;}
if(n > max) max = n;
if(n < min) min = n;
sum += n;
}
printf("max = %d\nmin = %d\naverage = %.3f\n", max, min, sum*1.0/ct);
}
}
void nearest()
{
int num[maxn], n, i = 0;
while(1 == scanf("%d", &num[i]))
i++;
int j, k, distance;
int a = num[0], b = num[1];
distance = abs(num[0] - num[1]);
for(j = 0; j < i - 1; j++)
for(k = j + 1; k < i; k++)
{
if(abs(num[k] - num[j]) < distance)
{
distance = abs(num[k] - num[j]);
a = num[j];
b = num[k];
}
}
printf("two nearest numbers : %d %d\ndistance:%d", a, b, abs(a - b));
}
void second()
{
int max, smax, n, first = 1;
while(1 == scanf("%d", &n))
{
if(first)
{
max = smax = n;
first =0;
}
if(n > max)
{
smax = max;
max = n;
}
if(n < max && n > smax)
{
smax = n;
}
}
printf("max:%d\nsmax:%d", max, smax);
}
void variance()
{
int num[maxn], ct = 0, n;
double average = 0.0, sum =0.0, psum = 0.0;
while(1 == scanf("%d", &n))
{
num[ct++] = n;
sum += n;
}
average = sum*1.0/ct;
int i;
for(i = 0; i < ct; i++)
{
psum += (num[i] - average) * (num[i] - average);
}
double var;
var = psum / ct;
printf("variance:%.3f", var);
}
void LessThanAverage()
{
int num[maxn], n, ct = 0, sum = 0;
double ave = 0.0;
while(1 == scanf("%d", &n))
{
num[ct++] = n;
sum += n;
}
ave = sum*1.0/ct;
int i, lct = 0;
for(i = 0; i < ct; i++)
{
if(num[i] < ave)
{
lct++;
}
}
printf("%d numbers less than average %.3f", lct, ave);
}
int main()
{
LessThanAverage();
return 0;
}