C语言结构体数组 的输入方式

如题 我写了一个 小程序,不知道为什么 明明我定义了要输入2个啊 但是为啥 要输入3个才能完成呢 不能理解啊 难道 这个和普通的数组输入方式不同吗?哪位前辈能够帮我 看看 到底出错在哪里了?
#include<stdio.h>

#define size 2 //定义结构体的长度

int main(){

int i;

struct Date{ //定义日期结构体

int year; //年

int month; //月

int day; //日

};

struct Student{

int key; //学号

char name[10]; //姓名

struct Date birthday; //生日 属于日期结构体

};

struct Student student[size]; //要求输入的十个学生

printf("学号\t姓名\t生日\n");

for(i=0;i<size;i++){

scanf("%d%s%d%d%d
",&student[i].key,student[i].name,&student[i].birthday.year,&student[i].birthday.month
,&student[i].birthday.day);

}

printf("输入完成\n");

getch();

return 0;

}

第1个回答  2013-06-10
最后一个%d后面不要换行,空格也去掉本回答被提问者采纳
第2个回答  2013-06-10
scanf("%d%s%d%d%d后面的空格全部去掉!
第3个回答  2019-12-23
u电脑内存开口跪,很难分开,觉得那个墨绿,到济南刚看过了
第4个回答  2019-01-28
C
语言中,结构体(struct)是一种数据结构,是C语言中聚合数据类型(aggregate
data
type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。
结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。
定义与声明
结构体的定义如下所示,struct为结构体关键字,tag为结构体的标志,member-list为结构体成员列表,其必须列出其所有成员;variable-list为此结构体声明的变量。
在实际应用中,C语言结构体数组常被用来表示一个拥有相同数据结构的群体,比如一个班的学生、一个车间的职工等。
在C语言中,定义结构体数组和定义结构体变量的方式类似;
例:
struct
stu{
char*name;//姓名
int
num;//学号
int
age;//年龄
char
group;//所在小组
float
score;//成绩
}class[5];
表示一个班级有5个学生。
扩展资料:
结构体数组的引用与引用一个结构体变量在原理上是一样的。只不过结构体数组中有多个结构体变量,我们只需利用for循环一个一个地使用结构体数组中的元素。
下面编写一个程序,编程要求:从键盘输入5个学生的基本信息,如姓名、年龄、性别、学号,然后将学号最大的学生的基本信息输出到屏幕。
#include
#include
struct
STU
{
char
name[20];
int
age;
char
sex;
char
num[20];
};
void
OutputSTU(struct
STU
stu[5]);
//函数声明,该函数的功能是输出学号最大的学生信息
int
main(void)
{
int
i;
struct
STU
stu[5];
for(i=0;i<5;++i)
{
printf("请输入第%d个学生的信息:",i+1);
scanf("%s%d%c%s",
stu.name,
&stu
.age,&stu
.sex,stu<
i>.num);/*%c
前面要加空格,不然输入时会将空格赋给%c*/
}
OutputSTU(stu);
return
0;
}
void
OutputSTU(struct
STU
stu[5])
{
struct
STU
stumax=stu[0];
int
j;
for(j=1;j<5;++j)
{
if(strcmp(stumax.num,stu[j]
.num)<0)//strcmp函数的使用
{
stumax=stu[j];
}
}
printf("学生姓名:%s学生年龄:%d学生性别:%c学生学号:
%s\n",stumax.name,
stumax.age,stumax.
sex,stumax.num);
}
输出结果是:
请输入第1个学生的信息:小红22
F
Z1207031
请输入第2个学生的信息:小明21
M
Z1207035
请输入第3个学生的信息:小七23
F
Z1207022
请输入第4个学生的信息:小欣20
F
Z1207015
请输入第5个学生的信息:小天19
M
Z1207024
学生姓名:小明学生年龄:21学生性别:M学生学号:Z1207035
参考资料:
百度百科——结构体
相似回答