
c语言的高手们来看一下!求救!
#include<stdio.h>structstudent{intnumber;charname;floatscore1;floatscore2;floatscore3...
#include<stdio.h>
struct student{int number;char name;float score1;float score2;float score3;}a[5];
void main()
{float aver[5],Aver;int i;
struct student *p1;
float p(float,float,float);
printf("请输入五个同学的学号,姓名,以及3门课的成绩:\n");
for(i=0;i<5;i++){scanf("%d,%s,%f,%f,%f",a[i].name,a[i].number,a[i].score1,a[i].score2,a[i].score3);
printf("\n");
aver[i]=p(a[i].score1,a[i].score2,a[i].score3);};
p1=a;Aver=aver[0];
for(i=0;i<4;i++){if(aver[i]<aver[i++])p1++;Aver=aver[i++];}
for(i=0;i<5;i++)
printf("第%d名学生成绩情况:\n%d,%s,%f,%f,%f,%f\n",i,a[i].name,a[i].number,a[i].score1,
a[i].score2,a[i].score3,aver[i]);
printf("最高分的学生的数据:\n%d,%s,%f,%f,%f,%f\n",(*p1).number,(*p1).name,(*p1).score1,(*p1).score2,(*p1).score3,Aver);
}
float p(float x,float y,float z)
{float sum,s;
sum=x+y+z;s=sum/3;return(s);}
上面是我自己根据清华大学出版社的c程序设计题解与上机指导中的实验10:结构体与共用体,里的问题自己编写的一个程序。
好像能运行,但我不知道应该怎么输入数据,希望高手能指导我怎么改写程序,或是怎么输入。。。
大一的菜鸟在这里谢过各位大侠!! 展开
struct student{int number;char name;float score1;float score2;float score3;}a[5];
void main()
{float aver[5],Aver;int i;
struct student *p1;
float p(float,float,float);
printf("请输入五个同学的学号,姓名,以及3门课的成绩:\n");
for(i=0;i<5;i++){scanf("%d,%s,%f,%f,%f",a[i].name,a[i].number,a[i].score1,a[i].score2,a[i].score3);
printf("\n");
aver[i]=p(a[i].score1,a[i].score2,a[i].score3);};
p1=a;Aver=aver[0];
for(i=0;i<4;i++){if(aver[i]<aver[i++])p1++;Aver=aver[i++];}
for(i=0;i<5;i++)
printf("第%d名学生成绩情况:\n%d,%s,%f,%f,%f,%f\n",i,a[i].name,a[i].number,a[i].score1,
a[i].score2,a[i].score3,aver[i]);
printf("最高分的学生的数据:\n%d,%s,%f,%f,%f,%f\n",(*p1).number,(*p1).name,(*p1).score1,(*p1).score2,(*p1).score3,Aver);
}
float p(float x,float y,float z)
{float sum,s;
sum=x+y+z;s=sum/3;return(s);}
上面是我自己根据清华大学出版社的c程序设计题解与上机指导中的实验10:结构体与共用体,里的问题自己编写的一个程序。
好像能运行,但我不知道应该怎么输入数据,希望高手能指导我怎么改写程序,或是怎么输入。。。
大一的菜鸟在这里谢过各位大侠!! 展开
展开全部
应该是上学期就已经学过C语言了吧?
这个程序里面有很多错误,不知道你是把书本中的改错题拿过来了还是你在输入过程中粗心导致,说能运行肯定不是事实。
认认真真改一下吧,输入是最基本应该掌握的知识。
我把程序改得面目全非了,由于已经没有时间了,就不一一给你注释了。学好一门编程语言的最好的方法就是用它来写程序,很值得花大量时间在上面。
#include<stdio.h>
float p(float,float,float);
struct student
{
int number;
char name[20];
float score1;
float score2;
float score3;
}a[5];
void main()
{
float aver[5],Aver;
int i,j;
struct student *p1;
printf("请输入五个同学的学号,姓名,以及3门课的成绩:\n");
for(i=0;i<5;i++)
{
scanf("%d%s%f%f%f",&a[i].number,a[i].name,&a[i].score1,&a[i].score2,&a[i].score3);
aver[i]=p(a[i].score1,a[i].score2,a[i].score3);
}
Aver=aver[0];
for(i=0;i<5;i++)
{
if(Aver<aver[i])Aver=aver[i];
j=i;
}
p1=&a[j];
for(i=0;i<5;i++)
printf("第%d名学生成绩情况:%s %d %f %f %f %f\n",i,a[i].name,a[i].number,a[i].score1,a[i].score2,a[i].score3,aver[i]);
printf("最高分的学生的数据:%d %s %f %f %f %f\n",(*p1).number,(*p1).name,(*p1).score1,(*p1).score2,(*p1).score3,Aver);
}
float p(float x,float y,float z)
{
float sum=0,s;
sum=x+y+z;
s=sum/3.0;
return(s);
}
输入和运行结果在下面:
请输入五个同学的学号,姓名,以及3门课的成绩:
23 xiao 89 78 67
24 yu 84 75 96
25 ting 86 95 72
26 yung 87 59 64
27 ring 75 94 82
第0名学生成绩情况:xiao 23 89.000000 78.000000 67.000000 78.000000
第1名学生成绩情况:yu 24 84.000000 75.000000 96.000000 85.000000
第2名学生成绩情况:ting 25 86.000000 95.000000 72.000000 84.333336
第3名学生成绩情况:yung 26 87.000000 59.000000 64.000000 70.000000
第4名学生成绩情况:ring 27 75.000000 94.000000 82.000000 83.666664
最高分的学生的数据:27 ring 75.000000 94.000000 82.000000 85.000000
Press any key to continue
这个程序里面有很多错误,不知道你是把书本中的改错题拿过来了还是你在输入过程中粗心导致,说能运行肯定不是事实。
认认真真改一下吧,输入是最基本应该掌握的知识。
我把程序改得面目全非了,由于已经没有时间了,就不一一给你注释了。学好一门编程语言的最好的方法就是用它来写程序,很值得花大量时间在上面。
#include<stdio.h>
float p(float,float,float);
struct student
{
int number;
char name[20];
float score1;
float score2;
float score3;
}a[5];
void main()
{
float aver[5],Aver;
int i,j;
struct student *p1;
printf("请输入五个同学的学号,姓名,以及3门课的成绩:\n");
for(i=0;i<5;i++)
{
scanf("%d%s%f%f%f",&a[i].number,a[i].name,&a[i].score1,&a[i].score2,&a[i].score3);
aver[i]=p(a[i].score1,a[i].score2,a[i].score3);
}
Aver=aver[0];
for(i=0;i<5;i++)
{
if(Aver<aver[i])Aver=aver[i];
j=i;
}
p1=&a[j];
for(i=0;i<5;i++)
printf("第%d名学生成绩情况:%s %d %f %f %f %f\n",i,a[i].name,a[i].number,a[i].score1,a[i].score2,a[i].score3,aver[i]);
printf("最高分的学生的数据:%d %s %f %f %f %f\n",(*p1).number,(*p1).name,(*p1).score1,(*p1).score2,(*p1).score3,Aver);
}
float p(float x,float y,float z)
{
float sum=0,s;
sum=x+y+z;
s=sum/3.0;
return(s);
}
输入和运行结果在下面:
请输入五个同学的学号,姓名,以及3门课的成绩:
23 xiao 89 78 67
24 yu 84 75 96
25 ting 86 95 72
26 yung 87 59 64
27 ring 75 94 82
第0名学生成绩情况:xiao 23 89.000000 78.000000 67.000000 78.000000
第1名学生成绩情况:yu 24 84.000000 75.000000 96.000000 85.000000
第2名学生成绩情况:ting 25 86.000000 95.000000 72.000000 84.333336
第3名学生成绩情况:yung 26 87.000000 59.000000 64.000000 70.000000
第4名学生成绩情况:ring 27 75.000000 94.000000 82.000000 83.666664
最高分的学生的数据:27 ring 75.000000 94.000000 82.000000 85.000000
Press any key to continue
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询