#include <stdio.h>
struct Student
{
int ID;
int sex;
char QQ[20];
char email[20];
};
void getInput(struct Student *student)
{
printf("请输入学生的姓名:");
scanf("%d", &student->ID);
printf("请输入学生的性别:");
scanf("%d", &student->sex);
printf("请输入学生的QQ号:");
scanf("%s", student->QQ);
printf("请输入学生的Email:");
scanf("%s", student->email);
}
void printStudent(struct Student student)
{
printf("ID:%d\n", student.ID);
printf("QQ:%s\n", student.QQ);
printf("Email:%s\n", student.email);
}
int main(void)
{
int n, i;
printf("请输入需要录入的数据数量:");
scanf("%d", &n);
struct Student student[n];
for (i = 0; i < n; i++)
{
printf("请输入第%d个学生的数据...\n", i + 1);
getInput(&student[i]);
}
printf("\n=====数据录入完毕=====\n");
printf("以下是录入的所有的男生的数据:\n");
for (i = 0; i < n; i++)
{
if (student[i].sex == 1)
{
printStudent(student[i]); // 这个程序编译通过了,但是在这里用printStudent的时候打印结果是乱的,这是为什么呢?
}
}
printf("以下是录入的所有女生的数据:\n");
for (i = 0; i < n; i++)
{
if (student[i].sex == 0)
{
printStudent(student[i]);
}
}
return 0;
}
|