求助:关于求奖学金
#include "stdio.h"#define N 10
void input(int a[][3])
{ int i;
printf("输入成绩:\n");
for(i=0;i<N;i++)
{ printf("第%d学生的学号,成绩:",i+1);
scanf("%d,d%d",&a[i][0],&a[i][1]);
a[i][2]=0;
}
}
void cmp(int a[][3])
{
int i,s=0;
float ave;
for(i=0;i<N;i++)
s=+a[i][1];
ave=(float)(s/N);
printf("总分:%d",s);
printf("平均分:%d\n",ave);
for(i=0;i<N;i++)
{
if(a[i][1]>=ave*1.1)
a[i][2]=1;
else if(a[i][1]>=ave*1.05&&a[i][1]<=ave*1.1)
a[i][2]=2;
}
}
void disp(int a[][3])
{
int i;
for(i=0;i<N;i++)
if(a[i][2]>0)
printf("%3d%3d%3d\n",a[i][0],a[i][1],a[i][2]);
}
void main()
{
int a[N][3];
input(a);
cmp(a);
disp(a);
}
求一个10个人的班的一棵成绩的奖学金,成绩超过平均分10%得一等,超过5%得2等
这个程序能运行,但得不到理想结果,请各位帮小弟看看!
搜索更多相关的解决方案:
奖学金
----------------解决方案--------------------------------------------------------
void input(int a[][3])
{ int i;
printf("输入成绩:\n");
for(i=0;i<N;i++)
{ printf("第%d学生的学号,成绩:",i+1);
scanf("%d,d%d",&a[i][0],&a[i][1]); //有错误。
a[i][2]=0;
}
}
void cmp(int a[][3])
{
int i,s=0;
float ave;
for(i=0;i<N;i++)
s=+a[i][1];//有错误
ave=(float)(s/N);
printf("总分:%d",s);
printf("平均分:%d\n",ave);//有错误
for(i=0;i<N;i++)
{
if(a[i][1]>=ave*1.1)
a[i][2]=1;
else if(a[i][1]>=ave*1.05&&a[i][1]<=ave*1.1)
a[i][2]=2;
}
}
----------------解决方案--------------------------------------------------------
for(i=0;i<N;i++)
{
if(a[i][1]>=ave*1.1)
a[i][2]=1;
else if(a[i][1]>=ave*1.05&&a[i][1]<=ave*1.1)//粗线处语句没有必要。
a[i][2]=2;
}
----------------解决方案--------------------------------------------------------
哦,呵呵,谢谢啊,我太粗心了!
----------------解决方案--------------------------------------------------------