C语言结构体如何循环输入成员信息

假设我定义了
struct student
{
int id;
char name[10];
char sex[10];
struct date birthday;
}boy1,boy2`````````

for(i=0;i<10;i++)
{
printf("输入第%d个学生学号,姓名,高数成绩,英语成绩,程序设计成绩",i)
scanf("%d,%c,%d,%d,%d",&boy1.id,~~~~~~);
}
如果我有10个成员(boy10),我能不能用上面的循环输入10个成员的信息(上面那个肯定不能,只能输出boy1的信息 我的意思是能不能把boy1 的1 改成 循环的 让它也随循环增加)?如果不能 应该怎么输入?总不能10个一个一个都用输入输出来输吧? 新学 求教 有多少种基础的输入的方法?

#include <stdio.h>

struct date {
int year;
int month;
int day;
};

struct student{
int id;
char name[10];
char sex[10];
struct date birthday;
};

int main() {
int i;
struct student stu[5];

for(i=0; i<5; i++){
printf("输入第%d个学生学号,姓名,性别,生日\n", i + 1);
scanf("%d %s %s %d %d %d", &stu[i].id, stu[i].name, stu[i].sex, 
&stu[i].birthday.year, &stu[i].birthday.month, &stu[i].birthday.day);
}

printf("输出第3个学生的信息:\n");
printf("%d, %s, %s, %d, %d, %d",  stu[3].id, stu[3].name, stu[3].sex, 
stu[3].birthday.year, stu[3].birthday.month, stu[3].birthday.day);

return 0;
}

这个是个简单的实现,不知道对你有没有帮助。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-05-16

用数组撒

struct student boy[10];
for(i=0;i<10;i++)
{
 printf("输入第%d个学生学号,姓名,高数成绩,英语成绩,程序设计成绩",i)
 scanf("%d,%c,%d,%d,%d",&boy[i].id,~~~~~~);
}

相似回答