这个程序中怎么添加语句printf

来源:百度知道 编辑:UC知道 时间:2024/05/19 20:16:52
#define N 10
#include<stdio.h>
int i;
float b=0.00;
struct stu
{int num;
char name[20];
int s1;
int s2;
int s3;
int ss;
float aa;
float bb;
};
struct stu p[N],*sp=p;
input()
{for(sp=p;sp<p+N;sp++)

scanf("%d%s%d%d%d",&sp->num,sp->name,&sp->s1,&sp->s2,&sp->s3);
}
average(i)
{float c=0;
for(sp=p;sp<p+N;sp++)
{sp->ss=sp->s1+sp->s2+sp->s3;
sp->aa=(sp->ss)/3.00;
c+=sp->aa;
}
b=c/N;
if(i<N) return(sp->ss);
if(i>=N&&i<2*N) return(sp->aa);
if(i==2*N) return(b);
}
maximum(i)
{int max;
max=p[0].ss;
for(i=1;i<N;i++)
{if(max<p[i].ss)
max=p[i].ss; }
return(max);
}
main()
{int a;
input();
for(i=0;i&

(1) average(i) 中条件返回没有包含所有情况。随便给你加一个条件外返回 999.999:
if(i==2*N) return(b);
return 999.999; // 条件外返回
}
(2) 输出:
for(i=0;i<=2*N;i++)
{ // 给你加个左花括号
average(i);
printf("NO. name score1 score2 score3 total average\n");
..... // 全抄,不变
printf("The highest score:%s,score total:%d\n",sp->name,sp->ss);
}; // 给你加个右花括号
}

你给了输入数据就可以打印了。

你的程序中添加printf语句是没有问题的。问题在于你的averge和maximum函数。应该定义为average(int i)和maximum(int i)