#include
#define TOTAL 2
struct Person {
char name[20];
int num;
char sex;
char profession;
union {
float score;
char course[20];
}sc;
};
void main() {
int i;
struct Person persons[TOTAL];
for (i = 0; i < TOTAL; i++) {
printf("input info:");
scanf_s("%s %d %c %c", persons[i].name, &(persons[i].num), &(persons[i].sex), &(persons[i].profession));
if (persons[i].profession == 's') {
printf("请输入该学生成绩:");
scanf_s("%f", &persons[i].sc.score);
}
else {
printf("请输入teacher的课程:");
scanf_s("%s", persons[i].sc.course);
}
fflush(stdin);//刷新,确保都输入了
}
printf("\nName\t\tNum\tSex\tProfession\tScore/Course\n");
for (i = 0; i < TOTAL; i++) {
if (persons[i].profession == 's') {
printf("%s\t\t%d\t%c\t%c\t\t%f\n",persons[i].name,persons[i].num,persons[i].sex,persons[i].profession,persons[i].sc.score);
}
else {
printf("%s\t\t%d\t%c\t%c\t\t%s\n", persons[i].name, persons[i].num, persons[i].sex, persons[i].profession, persons[i].sc.course);
}
}
}
修改如下,供参考:
#include<stdio.h>
#define TOTAL 2
struct Person {
char name[20];
int num;
char sex;
char profession;
union {
float score;
char course[20];
}sc;
};
void main() {
int i;
struct Person persons[TOTAL];
for (i = 0; i < TOTAL; i++) {
printf("input info:");
scanf_s("%s %d %c %c", persons[i].name, 20, &persons[i].num, &persons[i].sex, 1, &persons[i].profession, 1);
//scanf_s("%s %d %c %c", persons[i].name, &(persons[i].num), &(persons[i].sex), &(persons[i].profession));修改
if (persons[i].profession == 's') {
printf("请输入该学生成绩:");
scanf_s("%f", &persons[i].sc.score);
}
else {
printf("请输入teacher的课程:");
scanf_s("%s", persons[i].sc.course, 20);
//scanf_s("%s", persons[i].sc.course);修改
}
fflush(stdin);//刷新,确保都输入了
}
printf("\nName\t\tNum\tSex\tProfession\tScore/Course\n");
for (i = 0; i < TOTAL; i++) {
if (persons[i].profession == 's') {
printf("%s\t\t%d\t%c\t%c\t\t%f\n", persons[i].name, persons[i].num,
persons[i].sex, persons[i].profession, persons[i].sc.score);
}
else {
printf("%s\t\t%d\t%c\t%c\t\t%s\n", persons[i].name, persons[i].num,
persons[i].sex, persons[i].profession, persons[i].sc.course);
}
}
}
scanf_s函数用对了吗?
scanf_s("%s", persons[i].sc.course);