/*求一个班学生单科成绩的总成绩,平均成绩,及90分以上,89~80分以上,79~70,69~60 ,60分以下各占总人数的百分比.要求用函数加指针*/ #include <stdio.h> #include <stdlib.h> void main() { float sum=0,average=0,percent=0; //average平均分,percent百分比 float *mark; //mark 分数 int n,i; int a,b,c,d,e; a=b=c=d=e=0; printf("请输入班级人数:"); scanf("%d",&n); mark=(float *)malloc(n*sizeof(float));
for(i=0;i<n;i++) { printf("请输入第[%d]个学生成绩:",i+1); scanf("%f",*(mark+i)); } //总成绩 for(i=0;i<n;i++) { sum=*(mark+i); sum++; } printf("学生总成绩为:%f",sum); //平均分 average=sum/n; printf("\n学生平均分为:%f",average); //百分比 for(i=0;i<n;i++) { if(*(mark+i)>=90) a++; else if(*(mark+i)>=80) b++; else if(*(mark+i)>=70) c++; else if(*(mark+i)>=60) d++; else e++; } printf("\n90分以上的学生有%d人,占%f%%",a,a/n*100); printf("\n80~90分的学生有%d人,占%f%%",b,b/n*100); printf("\n70~80分的学生有%d人,占%f%%",c,c/n*100); printf("\n60~70分的学生有%d人,占%f%%",d,d/n*100); printf("\n60分的以下的学生有%d人,占%f%%",e,e/n*100); //释放 free(mark); }
此程序可以运行,但是一输入成绩就出错,函数方法暂且没有研究,我得先把这个搞会才行,呵呵! 请帮忙看一下问题出错在哪里,谢谢!
[此贴子已经被作者于2004-06-06 11:58:49编辑过]