c语言:结构体:有3个学生,每个学生的数据包括学号、姓名、3门课的成绩,要求输出3门课总平均成绩

有3个学生,每个学生的数据包括学号、姓名、3门课的成绩,要求输出3门课总平均成绩输出的学号与输入的不同是怎么回事呢?#include<stdio.h>structstud... 有3个学生,每个学生的数据包括学号、姓名、3门课的成绩,要求输出3门课总平均成绩
输出的学号与输入的不同是怎么回事呢?
#include<stdio.h>
struct student
{
char number[3];
char name[20];
float score[3];
float aver;
};
int main()
{

struct student stu[3];
int i,max;
printf("请输入三位学生的学号、姓名、3门课的成绩:\n");
for(i=0;i<3;i++)
{
scanf("%s%s%f%f%f",stu[i].number,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
stu[i].aver=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3;
}
printf("学号 姓名 c语言 高数 英语 平均\n");
for(i=0;i<3;i++)
{
printf("%-5s %-5s %-6.2f %-6.2f %-6.2f %-6.2f\n",stu[i].number,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].aver);
}
}
输出的学号与输入的不同是怎么回事呢?
展开
 我来答
qinyanpeng2012
2014-05-31 · TA获得超过169个赞
知道答主
回答量:41
采纳率:0%
帮助的人:47.9万
展开全部
定义了char number[3],所以只保存前三个字符,而你printf时却要输出6个,就连名字那前三个字符也输出了。比如第一个信息,学号只存成了B13,后面写的没有存入,姓名存了SDF,因为name跟在number之后,所以你在输出六个字符,就成了B13SDF
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式