C语言:有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生的数据,
答案:2信息版本:手机版
解决时间 -10-06 13:43
已解决
-10-06 06:42
C语言:有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生的数据,要求打印出3门课的平均成绩,以及平均成绩最高的学生的数据(包括学号、姓名、3门课成绩、平均分数)
最佳答案
-10-06 07:35
#include
struct Student
{
char name[100];//名字
char num[100];//学号
double class1;//第一门课成绩
double class2;//第二门课成绩
double class3;//第三门课成绩
};
int main()
{
Student student[100];
for (int i = 0; i < 10; i++)//输入学生信息
{
gets(student[i].name);
getchar();//清空键盘缓冲区
gets(student[i].num);
getchar();
scanf("%lf%lf%lf",&student[i].class1,&student[i].class2,&student[i].class3);
}
for (int j = 0; j < 10; j++)//输出学生信息
{
printf("%s\n%s\n%lf\n",student[j].name,student[j].num,(student[j].class1+student[j].class2+student[j].class3)/3.0);
}
return 0;
}
全部回答
1楼
-10-06 08:59
这个容易哦,不过分太少了.
因为分太少,所以偷了点懒.按e和按f键的功能,我没有做.就是说,少写两个函数.
而且输入格式方面也有点问题.当然,改起来不难.
如果你加分的话,我会帮你做完.
呵呵,其实做到这里,其它的也不难了,可以自己练练.
#include
#include
struct student
{
char name[20];
char num[20];
int a,a1,a2,a3,a4;
int aver;
}stu[10];
void mark(student *b)
{ int i;
for(i=0;i<10;i++)
{
b[i].a=b[i].a1+b[i].a2+b[i].a3+b[i].a3;
printf("%d ",b[i].a);
}
printf("\n");
}
void avemark(student *b)
{ int i;
for(i=0;i<10;i++)
{
b[i].a=b[i].a1+b[i].a2+b[i].a3+b[i].a3;
b[i].aver=b[i].a/4;
printf("%d ",b[i].aver);
}
printf("\n");
}
void maxstudent(student *b)
{ int i,max;
for(i=0;i<9;i++)
{
max=(b[i].a>b[i+1].a)?b[i].a:b[i+1].a;
}
for(i=0;i<10;i++)
if(b[i].a==max)
{
printf("最高分数学生的姓名,学号,总分,平均分如下:\n");
printf("%s %s %d\n",b[i].name,b[i].num,b[i].a,b[i].aver);
}
}
void xianshi(student *b)
{
int i;
printf("所有学生信息如下(依次为学生的姓名,学号,总分,四科成绩):\n");
for(i=0;i<10;i++)
{
printf("%s %s %d %d %d %d %d %d\n",b[i].name,b[i].num,b[i].a,b[i].a1,b[i].a2,b[i].a3,b[i].a4);
}
}
int main()
{ int i,n;char c;
printf("依次输入学生信息(姓名,学号,四科成绩\n注意:各项信息用空格分开,输完一个学生后按回车,接着输下一个学生\n");
printf("输入要输入学生的人数:\n");
scanf("%d",&n);
for(i=0;i
{gets(stu[i].name);gets(stu[i].num);scanf("%d%d%d%d",stu[i].a1,stu[i].a2,stu[i].a3,stu[i].a4);}
printf("菜单如下:\n按a键打印四门课的总成绩.\n按b键打印出平均成绩按.\n");
printf("c键打印最高分的学生信息\n按d键显示所有学生信息.\n");
printf("按e添加一个学生的记录.\n按f键删除一个学生记录.\n按q键退出.\n");
printf("请按键选择(以小写字母输入):\n");
scanf("%c",&c);
switch(c)
{
case 'a':mark(stu);break;
case 'b':avemark(stu);break;
case 'c':maxstudent(stu);break;
case 'd':xianshi(stu);break;
case 'e':break;
case 'f':break;
case 'q':abort();
}
return 0;
}
我要举报
如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
大家都在看
推荐资讯
c语言从键盘输入10个学生的姓名和成绩 C语言:有10个学生 每个学生的数据包括学号 姓名 3门课的成绩 从键盘输入10个学生的数据 ...