用结构体数字做学生信息管理,错哪了

/* Note:Your choice is C IDE */http://img.mukewang.com/587e21a10001fa6806080431.jpg

#include "stdio.h"

void main()

{

int i;

struct student{

char num[22];

char name[33];

char sex;

int age;

};

struct student stu[3];

for(i=0;i<2;i++)

{

printf("请输入第%d个学生的信息:\n",i+1);

printf("number:");

scanf("%s",stu[i].num);

printf("name:");

scanf("%s",stu[i].name);

printf("sex:");

scanf("%c",&stu[i].sex);

printf("\nage:");

scanf("%d",&stu[i].age);

}

printf("number  name   sex     age     \n");

for(i=0;i<2;i++)

{

printf("%-8s%-8s %-8c %-8d\n",stu[i].num,stu[i].name,

stu[i].sex,stu[i].age);

}

    

}


溯源1
浏览 1265回答 3
3回答

Xyino_Snake

类定义直接写在main函数里面吗?最好写外面。 性别输入单字符,显然不能输入汉字。 标准IO还要考虑回车符。 如果是我,我会使用 宽字符串+宽字符 支持汉字。 但是C语言函数会将宽转化为窄。因此又要搭配winAPI。 说实话直到目前为止,我自己都还没有贯彻这些正确主张。但下一步我将会这样做。 另外,我用的是C++。

望远

printf("请输入第%d个学生的信息:\n",i+1); printf("number:"); gets(stu[i].num); printf("name:"); gets(stu[i].name); printf("sex:"); scanf("%c",&stu[i].sex); printf("\nage:"); scanf("%d",&stu[i].age);选择用gets()输入的时候会自动处理掉后面结尾处的回车,并且可以带有空格。
打开App,查看更多内容
随时随地看视频慕课网APP