第一题
#include "stdio.h"
int main() // "void" 在 C 语言中不合法,应该使用 int
{
struct // 匿名结构体,也可以给它一个名称,比如 "student"
{
int num;
char name[20];
float score;
} stu = {1001, "zhao", 88}; // 用逗号分隔成员的赋值
printf("\n %d,%s,%f", stu.num, stu.name, stu.score); // 使用成员访问操作符访问结构体成员
return 0; // main 函数应该返回一个整数值
}
第二题
#include "stdio.h"
struct student
{
int num;
char name[20];
float score;
};
int main()
{
struct student *p, stu[3] = {{101, "zhao", 89}, {102, "qian", 92}, {103, "sun", 86}};
for (p = stu; p < stu + 3; p++) // 这里需要增加 p 的迭代,以遍历结构体数组中的每个元素
printf("%-10s%-6.0f\n", p->name, p->score);
return 0;
}
第三题
#include "stdio.h"
struct student
{
char name[20];
int num;
float score;
};
int main()
{
struct student stu[4];
int i;
printf("请输入学生的姓名、学号和成绩:\n");
for (i = 0; i < 4; i++)
scanf("%s %d %f", stu[i].name, &stu[i].num, &stu[i].score);
// 寻找最高分和最低分的学生
int max_index = 0, min_index = 0;
float max_score = stu[0].score, min_score = stu[0].score;
for (i = 1; i < 4; i++)
{
if (stu[i].score > max_score)
{
max_score = stu[i].score;
max_index = i;
}
if (stu[i].score < min_score)
{
min_score = stu[i].score;
min_index = i;
}
}
printf("Score 最大的学生信息:\n");
printf("Name: %s\n", stu[max_index].name);
printf("Num: %d\n", stu[max_index].num);
printf("Score: %.2f\n", stu[max_index].score);
printf("Score 最小的学生信息:\n");
printf("Name: %s\n", stu[min_index].name);
printf("Num: %d\n", stu[min_index].num);
printf("Score: %.2f\n", stu[min_index].score);
return 0;
}
C语言结构体作业答案
最新推荐文章于 2024-06-30 21:34:41 发布