关于计算机二级的问题,请帮忙看一下程序哪里出错了
统计个年龄段的人数,要求函数把0至9岁年龄段的人数放在d[0]中,把10至19年龄段的人数放在的d[1]中,其余依此类推,把100岁(含100)以上的人数放在d[10]中。请问红色字体部分哪里错了??为什么不能输出正确的结果??
#include
#define N 50
#define M 11
void fun(int *a, int *b)
{[color=#ff0000]int i,j,c;
for(i=0;i
程序代码:
#include <stdio.h>
#define N 50
#define M 11
void fun(int a[], int b[])
{
int i,j,c;
for(i=0;i<M;i++)
b[i]=0;
for(j=0;j<N;j++)
{
if(a[j]>=100)
b[10]++; //here
else
{ //here
c=a[j]/10;
switch(c)
{
case 0: b[0]++;break;
case 1: b[1]++;break;
case 2: b[2]++;break;
case 3: b[3]++;break;
case 4: b[4]++;break;
case 5: b[5]++;break;
case 6: b[6]++;break;
case 7: b[7]++;break;
case 8: b[8]++;break;
case 9: b[9]++;break;
}
} //and here
}
}
double rnd()
{
static t=29, c=217, m=1024, r=0;
r=(r*t+c)%m;
return((double)r/m);
}
main()
{
int age[N], i, d[M];
FILE *out ;
for(i=0; i<N; i++)
age[i]=(int)(115*rnd());
printf("The original data :\n");
for(i=0; i<N; i++)
printf((i+1)%10==0?"%4d\n":"%4d",age[i]);
printf("\n\n");
fun( age, d);
out=fopen ("F:\\out.txt","w");
for(i=0;i<10;i++)
{
printf("%4d---%4d : %4d\n", i*10, i*10+9, d[i]);
fprintf(out, "%4d---%4d : %4d\n", i*10, i*10+9, d[i]);
}
printf(" Over 100 : %4d\n", d[10]);
fprintf(out, " Over 100 : %4d\n", d[10]);
fclose (out );
}

