/*求一个班学生单科成绩的总成绩,平均成绩,及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编辑过]