:功能:编写函数统计各分数段的人数。N个分数通过调用随机函数获得,并放在主函数的score数组中。要求函数把0~9分数段的人数放在d[0]中,10~19分数段的人数放在d[1]中,以此类推。结果在主函数中输出。要求:用for循环完成------------------------------------------------*/#include <stdlib.h>#include<stdio.h>void wwjt(); void fun(int score[],int n,int d[])/*n是score数组的元素个数*/{ /**********Program**********/ }
/********** End **********/}
main(){ int score[30],d[10]={0},i; printf("学生的成绩为:\n"); for(i=0;i<30;i++) { score[i]=rand()%100; printf("%5d",score[i]); if((i+1)%5==0)printf("\n"); } printf("\n-------------------\n"); fun(score,30,d); for(i=0;i<10;i++) printf("%2d到%2d的人数为%3d人\n",i*10,i*10+9,d[i]); printf("\n-------------------\n");wwjt();}void wwjt(){ FILE *IN,*OUT; int iIN[30],iOUT[10]={0}; int i; IN=fopen("in.dat","r"); if(IN==NULL) { printf("Please Verify The Currernt Dir..it May Be Changed"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("Please Verify The Current Dir.. it May Be Changed"); } for(i=0;i<15;i++) fscanf(IN,"%d",&iIN[i]); fun(iIN,15,iOUT); for(i=0;i<10;i++){ fprintf(OUT,"%d\n",iOUT[i]); } fclose(IN); fclose(OUT);}
代码如下,如有帮助,请采纳一下,谢谢。
#include <stdlib.h>
#include <stdio.h>
void wwjt();
void fun(int score[],int n,int d[])
{
int i = 0;
for (i = 0; i < n; i++)
{
if(score[i] >= 0 && score[i] <= 9)
d[0] = d[0] +1;
else if(score[i] >= 10 && score[i] <= 19)
d[1] = d[1] +1;
else if(score[i] >= 20 && score[i] <= 29)
d[2] = d[2] +1;
else if(score[i] >= 30 && score[i] <= 39)
d[3] = d[3] +1;
else if(score[i] >= 40 && score[i] <= 49)
d[4] = d[4] +1;
else if(score[i] >= 50 && score[i] <= 59)
d[5] = d[5] +1;
else if(score[i] >= 60 && score[i] <= 69)
d[6] = d[6] +1;
else if(score[i] >= 70 && score[i] <= 79)
d[7] = d[7] +1;
else if(score[i] >= 80 && score[i] <= 89)
d[8] = d[8] +1;
else if(score[i] >= 90 && score[i] <= 99)
d[9] = d[9] +1;
}
}
void main()
{
int score[30],d[10]={0},i;
printf("学生成绩为:\n");
for (i = 0; i < 30; i++)
{
score[i] = rand() % 100;
printf("%5d",score[i]);
if( (i+i)%5 == 0 ) printf("\n");
}
printf("\n-----------------------\n");
fun(score,30,d);
for (i = 0; i < 10;i++)
{
printf("%d~%d分数段的人数为:%d\n",i * 10,i*10+9,d[i]);
}
}
楼上的朋友程序没错,但我建议对分数取余来决定范围,这样代码就不用那么长了