利用结构体,输入两位同学的学号、姓名和成绩 输出两位同学中,成绩较高者的学号、姓名和成绩: 若二者成绩相等,则输出两位同学的全部信息。c语言实现
时间: 2023-03-25 11:01:20 浏览: 158
可以使用以下代码实现:
#include <stdio.h>
#include <string.h>
struct student {
int id;
char name[20];
float score;
};
int main() {
struct student s1, s2;
printf("请输入第一个同学的学号、姓名和成绩:\n");
scanf("%d %s %f", &s1.id, s1.name, &s1.score);
printf("请输入第二个同学的学号、姓名和成绩:\n");
scanf("%d %s %f", &s2.id, s2.name, &s2.score);
if (s1.score > s2.score) {
printf("成绩较高者的学号、姓名和成绩为:%d %s %.2f\n", s1.id, s1.name, s1.score);
} else if (s1.score < s2.score) {
printf("成绩较高者的学号、姓名和成绩为:%d %s %.2f\n", s2.id, s2.name, s2.score);
} else {
printf("两位同学的全部信息为:%d %s %.2f,%d %s %.2f\n", s1.id, s1.name, s1.score, s2.id, s2.name, s2.score);
}
return ;
}
相关问题
模仿c语言初学者,把两个学生的信息(包括学号、姓名、成绩)放在一个结构体变量中,输入两个学生的学号、姓名和成绩,输出成绩较高学生的学号、姓名和成
绩。
好的,您的问题是如何将两个学生的信息存储在一个结构体变量中,并比较它们的成绩,输出成绩较高的学生的学号、姓名和成绩。下面是一个简单的示例程序,可以实现您的需求:
```c
#include <stdio.h>
#include <string.h>
struct student {
int id;
char name[20];
float score;
};
int main() {
struct student stu1, stu2;
printf("请输入第一个学生的学号、姓名和成绩:\n");
scanf("%d %s %f", &stu1.id, stu1.name, &stu1.score);
printf("请输入第二个学生的学号、姓名和成绩:\n");
scanf("%d %s %f", &stu2.id, stu2.name, &stu2.score);
if (stu1.score > stu2.score) {
printf("成绩较高的学生是:%d %s %.2f\n", stu1.id, stu1.name, stu1.score);
} else {
printf("成绩较高的学生是:%d %s %.2f\n", stu2.id, stu2.name, stu2.score);
}
return 0;
}
```
在上面的程序中,我们定义了一个名为 `student` 的结构体,它包含学号、姓名和成绩三个成员变量。在 `main` 函数中,我们创建了两个 `student` 类型的结构体变量 `stu1` 和 `stu2`,并使用 `scanf` 函数从标准输入中读取两个学生的信息。然后,我们比较了两个学生的成绩,输出了成绩较高的学生的学号、姓名和成绩。
注意,我们使用了 `printf` 函数的格式化字符串来输出浮点数,其中 `%.2f` 表示保留两位小数。
c语言输入两个学生的学号、姓名和成绩,输出成绩较高的学生的学号、姓名和成绩
可以通过以下代码实现:
```c
#include <stdio.h>
#include <string.h>
struct student {
int id;
char name[20];
float score;
};
int main() {
struct student s1, s2;
// 输入第一个学生的信息
printf("请输入第一个学生的学号:");
scanf("%d", &s1.id);
printf("请输入第一个学生的姓名:");
scanf("%s", s1.name);
printf("请输入第一个学生的成绩:");
scanf("%f", &s1.score);
// 输入第二个学生的信息
printf("请输入第二个学生的学号:");
scanf("%d", &s2.id);
printf("请输入第二个学生的姓名:");
scanf("%s", s2.name);
printf("请输入第二个学生的成绩:");
scanf("%f", &s2.score);
// 比较两个学生的成绩,输出成绩较高的学生的信息
if (s1.score > s2.score) {
printf("成绩较高的学生是:%d %s %.2f\n", s1.id, s1.name, s1.score);
} else {
printf("成绩较高的学生是:%d %s %.2f\n", s2.id, s2.name, s2.score);
}
return 0;
}
```
需要注意的是,结构体中的字符串需要使用数组来存储,而不是直接定义一个指针。另外,可以使用 `%.2f` 的格式控制字符串来保留两位小数输出浮点数。
阅读全文