找c语言设计的错误

来源:百度知道 编辑:UC知道 时间:2024/06/23 08:54:19
题目:有3个学生,每个学生的数据包括学号 姓名 三门课程的成绩,从键盘输入10个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号 姓名 三门课程成绩 平均成绩)
大侠请看我自己写的:
#include"stdio.h"
struct student
{
int num;
char name[10];
int score1;
int score2;
int score3;
}stu[3]={{2001,"li",60,70,80},{2002,"zhang",71,81,91},{2003,"hu",76,86,96}};
void main()
{
int i;
int max=0,aver[3]={0,0,0};
struct student *p;
for(i=0;i<3;i++)
{
aver[i]=(stu[i].score1+stu[i].score2+stu[i].score3)/3;
p=&stu[i];
printf("%5d%10s%5f%5f%5f5f\n",p->num,p->name,p->score1,p->score2,p->score3,aver[i]);
}
for(i=0,max=aver[i];i<3;i++)
if(aver[i]>max) max=aver[i];
p=&stu[i];
printf("the highest one:%5d%10s%5f%5f%5f%5f",p->num,p->name,
p->score1,p->score2,p->score3,max);
}
我调试了,没错的,但是在运行是总是通不过,出现:
runtime e

输出格式不正确,%d用于输出整数,%f用于输出浮点数。
#include"stdio.h"
struct student
{
int num;
char name[10];
int score1;
int score2;
int score3;
}stu[3]={{2001,"li",60,70,80},{2002,"zhang",71,81,91},{2003,"hu",76,86,96}};
void main()
{
int i, k=0;
int max=0,aver[3]={0,0,0};
struct student *p;
for(i=0;i<3;i++)
{
aver[i]=(stu[i].score1+stu[i].score2+stu[i].score3)/3;
p=&stu[i];
printf("%5d%10s%5d%5d%5d%5d\n",p->num,p->name,p->score1,p->score2,p->score3,aver[i]);
}

for(i=0,max=aver[i];i<3;i++)
{
if(aver[i]>max)
{
max=aver[i];
k=i;
}
}
p=&stu[k];
printf("the highest one:%5d%10s%5d%5d%5d%5d",p->num,p->name,
p->score1,p->score2,p->score3,max);
}

错误在这里:
printf("%5d%10s%5f%5f%5f5f\n&q