1942年美军军用口粮:关于C的结构体的小问题,程序检测没问题,可一运行就不像我设计的那样了

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/30 21:03:13
#include<stdio.h>
struct student
{
char name[3];
int yingyu[3];
int shuxue[3];
int yuwen[3];
int jsj[3];
};
struct student stu[3];
void main()
{
int i=0;
for(i=0;i<3;i=i+1)
{
printf("please input the score of yingyu,shuxue,yuwen and jsj:\n");
scanf("%c%d%d%d%d",&stu[i].name,&stu[i].yingyu,&stu[i].shuxue,&stu[i].yuwen,&stu[i].jsj);
}
for(i=0;i<3;i=i+1)
{
printf("name:%c\nyingyu:%d\nshuxue:%d\nyuwen:%d\njsj:%d\n,stu[i].name,stu[i].yingyu,stu[i].shuxue,stu[i].yuwen,stu[i].jsj");
}
getch();
}

输入时是没问题的,可到后面的循环输出时就不对了

#include<stdio.h>
struct student
{
char name[3];
int yingyu;
int shuxue;
int yuwen;
int jsj;
};
struct student stu[3];

int main(int argc, char* argv[])
{
int i=0;
for(i=0;i<3;i=i+1)
{
printf("please input the score of yingyu,shuxue,yuwen and jsj:\n");
scanf("%s%d%d%d%d",stu[i].name, &(stu[i].yingyu), &(stu[i].shuxue), &(stu[i].yuwen), &(stu[i].jsj));
}
for(i=0;i<3;i=i+1)
{
printf("name:%s\nyingyu:%d\nshuxue:%d\nyuwen:%d\njsj:%d\n",stu[i].name,stu[i].yingyu,stu[i].shuxue,stu[i].yuwen,stu[i].jsj);
}
getch();

return 0;
}

而且, 我觉得name只有3个长度太少了