c语言问题

#include<stdio.h>/*函数功能:从键盘输入一个班学生某门课的成绩及其学号当输入成绩为负值时,输入结束函数参数:长整型数组num,存放学生学号实型数组sco... #include<stdio.h>
/*函数功能:从键盘输入一个班学生某门课的成绩及其学号
当输入成绩为负值时,输入结束
函数参数: 长整型数组num,存放学生学号
实型数组score,存放学生成绩
函数返回值:学生总数
*/
int ReadScore(long num[],float score[])
{
int i,j,n=0;
printf("please input students number:\n");
for(i=0;i<5;i++)
{
scanf("%d",&num[i]);
n=n+1;
}
for(i=0;i<5;i++)
{
printf("please input No.%d student's score:\n",i+1);
for(j=0;j<1;j++)
scanf("%f",&score[j]);
}
return(n);
}
/*函数功能:统计不及格人数并打印不及格学生名单
函数参数:长整型数组num,存放学生学号
实型数组score,存放学生成绩
整型变量n,存放学生总数
函数返回值:不及格人数
*/
int GetFail(long num[], float score[], int n=0)
{
int i,fail;
for(i=0;i<5;i++)
if(score[i]<60)
{
printf("the fail student number is:%d\n",i);
fail=fail+1;
}
printf("there are %d students failed:\n",fail);
return (fail);
}
/*函数功能:计算全班平均分
函数参数:实型数组score,存放学生成绩
整型变量n,存放学生总数
函数返回值:平均分
*/
float GetAver(float score[], int n)
{
float sum=score[0],aver;
int i;
for(i=0;i<5;i++)
{
sum=sum+score[i];
aver=sum/n;
}
printf("the average score is %f\n",aver);
return (aver);
}
/*函数功能:统计成绩在全班平均分及平均分之上的学生人数并打印其学生名单
函数参数:长整型数组num,存放学生学号
实型数组score,存放学生成绩
整型变量n,存放学生总数
函数返回值:成绩在全班平均分及平均分之上的学生人数
*/
int GetAboveAver(long num[], float score[], int n)
{
int i,above=0;
float aver;
aver=GetAver(score,n);
for(i=0;i<5;i++)
if(score[i]>=aver)
{
above=above+1;
for(i=0;i<5;i++)
printf("%d",num[i]);
}
printf("there are %d students above the average\n",above);
return(above);
}
/*函数功能:统计各分数段的学生人数及所占的百分比
函数参数:实型数组score,存放学生成绩
整型变量n,存放学生总数
函数返回值:无
*/
void GetDetail(float score[], int n)
{
int i,x=0,y=0,z=0,w=0;
float percent;
for(i=0;i<5;i++)
if(score[i]>=60&&score[i]<70)
{
x=x+1;
percent=float(x/n);
printf("there are %d students above 60\n",x);
printf("\n%f",percent);
}
else if(score[i]>=70&&score[i]<80)
{
y=y+1;
percent=float(y/n);
printf("there are %d students above 70\n",y);
printf("\n%f",percent);
}
else if(score[i]>=80&&score[i]<90)
{
z=z+1;
percent=float(z/n);
printf("there are %d students above 80\n",z);
printf("\n%f",percent);
}
else if(score[i]>=90&&score[i]<100)
{
w=w+1;
percent=float(w/n);
printf("there are %d students above 90\n",w);
printf("\n%f",percent);
}
}
void main()
{
long num[5];
float score[5],aver;
int n=0,i,fail,above;
n=ReadScore(num,score);
aver=GetAver(score, n);
fail=GetFail(num, score,n=0);
above=GetAboveAver(num,score, n=0);
}
为什么运行出来不对啊,帮忙修改
展开
 我来答
玉枫孤雨
2007-12-20 · TA获得超过233个赞
知道答主
回答量:123
采纳率:0%
帮助的人:0
展开全部
#include<stdio.h>
/*函数功能:从键盘输入一个班学生某门课的成绩及其学号
当输入成绩为负值时,输入结束
函数参数: 长整型数组num,存放学生学号
实型数组score,存放学生成绩
函数返回值:学生总数
*/
int ReadScore(long num[],float score[])
{
int i,j,n=0;
printf("please input students number:\n");
for(i=0;i<5;i++)
{
scanf("%d",&num[i]);
n=n+1;
}
for(i=0;i<5;i++)
{
printf("please input No.%d student's score:\n",i+1);
for(j=0;j<1;j++)
scanf("%f",&score[j]);
}
return(n);
}
/*函数功能:统计不及格人数并打印不及格学生名单
函数参数:长整型数组num,存放学生学号
实型数组score,存放学生成绩
整型变量n,存放学生总数
函数返回值:不及格人数
*/
int GetFail(long num[], float score[], int n)
{
int i,fail;
for(i=0;i<5;i++)
if(score[i]<60)
{
printf("the fail student number is:%d\n",i);
fail=fail+1;
}
printf("there are %d students failed:\n",fail);
return (fail);
}
/*函数功能:计算全班平均分
函数参数:实型数组score,存放学生成绩
整型变量n,存放学生总数
函数返回值:平均分
*/
float GetAver(float score[], int n)
{
float sum=score[0],aver;
int i;
for(i=0;i<5;i++)
{
sum=sum+score[i];
aver=sum/n;
}
printf("the average score is %f\n",aver);
return (aver);
}
/*函数功能:统计成绩在全班平均分及平均分之上的学生人数并打印其学生名单
函数参数:长整型数组num,存放学生学号
实型数组score,存放学生成绩
整型变量n,存放学生总数
函数返回值:成绩在全班平均分及平均分之上的学生人数
*/
int GetAboveAver(long num[], float score[], int n)
{
int i,above=0;
float aver;
aver=GetAver(score,n);
for(i=0;i<5;i++)
if(score[i]>=aver)
{
above=above+1;
for(i=0;i<5;i++)
printf("%d",num[i]);
}
printf("there are %d students above the average\n",above);
return(above);
}
/*函数功能:统计各分数段的学生人数及所占的百分比
函数参数:实型数组score,存放学生成绩
整型变量n,存放学生总数
函数返回值:无
*/
void GetDetail(float score[], int n)
{
int i,x=0,y=0,z=0,w=0;
float percent;
n=0;
for(i=0;i<5;i++)
if(score[i]>=60&&score[i]<70)
{
x=x+1;
percent=(float)(x/n);
printf("there are %d students above 60\n",x);
printf("\n%f",percent);
}
else if(score[i]>=70&&score[i]<80)
{
y=y+1;
percent=(float)(y/n);
printf("there are %d students above 70\n",y);
printf("\n%f",percent);
}
else if(score[i]>=80&&score[i]<90)
{
z=z+1;
percent=(float)(z/n);
printf("there are %d students above 80\n",z);
printf("\n%f",percent);
}
else if(score[i]>=90&&score[i]<100)
{
w=w+1;
percent=(float)(w/n);
printf("there are %d students above 90\n",w);
printf("\n%f",percent);
}
}
void main()
{
long num[5];
float score[5],aver;
int n=0,i,fail,above;
n=ReadScore(num,score);
aver=GetAver(score, n);
fail=GetFail(num, score,n=0);
above=GetAboveAver(num,score, n=0);
}

改到没有语法错误了,不过逻辑有没有错误就不知道了。主要在于函数里的行参不能赋值和强制转换函数float 应写为(float)i;而不能是float(i).
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式