请用标准数据类型创建结构体,用于描述一个人的信息,结构体包括三个成员,分别为姓名、性别、3门课的成绩。 输入要求 输入为三行。第一行输入人的姓名(可能包含空格);第二行为一个字母,代表性别;第三行为3个整数,表示3门课的成绩。假设输入的数据都是在有效范围内的。 输出要求 输出为三行,分别对应输入的三行信息。成绩之间用空格间隔,最后一个数据后面也有空格。 输入样例 Peter Chen m 98 78 70 输出样例 Peter Chen m 98 78 70 模板 #include<stdio.h> @-@ //设计描述学生信息的结构体类型,别名为STU int main() { STU s; //定义结构体变量,用别名方式 int i; @-@ //设计输入语句 puts(s.name); printf("%c\n",s.gender); for(i=0;i<3;i++) printf("%d ",s.score[i]); printf("\n"); return 0; } 提示 姓名不超过20个字符 补充@-@处的内容使其能够正常运行
时间: 2024-01-29 12:04:35 浏览: 32
章-派生类型与结构体(与“数据”有关文档共37张).pptx
一个可能的解决方案如下所示:
```
#include <stdio.h>
//定义结构体类型STU,包含姓名、性别和3门课的成绩
typedef struct {
char name[21];
char gender;
int score[3];
} STU;
int main() {
STU s;
int i;
//输入姓名
fgets(s.name, 21, stdin);
//去掉姓名中的换行符
for (i = 0; s.name[i] != '\0'; i++) {
if (s.name[i] == '\n') {
s.name[i] = '\0';
break;
}
}
//输入性别
scanf("%c", &s.gender);
//输入成绩
for (i = 0; i < 3; i++) {
scanf("%d", &s.score[i]);
}
//输出姓名、性别和成绩
printf("%s\n", s.name);
printf("%c\n", s.gender);
for (i = 0; i < 3; i++) {
printf("%d ", s.score[i]);
}
printf("\n");
return 0;
}
```
在这个程序中,我们首先定义了一个结构体类型STU,包含姓名、性别和3门课的成绩。然后在主函数中,我们定义了一个STU类型的变量s。接下来,我们分别通过fgets和scanf函数输入了姓名、性别和成绩。输入姓名时,我们使用了fgets函数,并去掉了姓名中的换行符。最后,我们通过printf函数输出了姓名、性别和成绩。
阅读全文