用C语言输入5位同学的编号、姓名以及3门课程的成绩。假设学号长度不超过6位,姓名长度不超过8位,且姓名中不包含空格。输出每位同学的姓名及平均分,保留1位小数。每位学生的信息占据一行。姓名和平均分之间以空格间隔。要求全部输入完在输出
时间: 2024-03-02 17:53:14 浏览: 53
好的,以下是可以实现您要求的C语言代码:
```c
#include <stdio.h>
int main() {
int id[5];
char name[5][9];
float score[5][3];
float avg[5];
// 输入学生信息
printf("请依次输入5位同学的学号、姓名和3门课程的成绩:\n");
for (int i = 0; i < 5; i++) {
scanf("%d %s %f %f %f", &id[i], name[i], &score[i][0], &score[i][1], &score[i][2]);
avg[i] = (score[i][0] + score[i][1] + score[i][2]) / 3;
}
// 输出学生平均分
printf("每位同学的姓名及平均分如下:\n");
for (int i = 0; i < 5; i++) {
printf("%s %.1f\n", name[i], avg[i]);
}
return 0;
}
```
代码中使用了一个二维数组来存储每个学生的3门课程成绩,同时使用一个一维数组来存储每个学生的平均分。在输入完所有学生信息后,使用一个循环输出每个学生的姓名和平均分。注意,为了保证姓名不超过8位,我们在定义`name`数组时设置了长度为9,以便存储字符串末尾的`\0`字符。
相关问题
输入5位同学的编号、姓名以及3门课程的成绩。假设学号长度不超过6位,姓名长度不超过8位,且姓名中不包含空格。输出每位同学的姓名及平均分,保留1位小数。每位学生的信息占据一行。姓名和平均分之间以空格间隔。c语言
好的,这里给出一个示例代码,使用结构体来存储每位同学的信息和成绩,并使用循环来输入和输出数据:
```c
#include <stdio.h>
// 定义一个结构体来存储每位同学的信息和成绩
struct Student {
char sid[7]; // 学号,长度不超过6位
char name[9]; // 姓名,长度不超过8位,且姓名中不包含空格
float scores[3]; // 3门课程的成绩
float avg_score; // 平均分
};
int main() {
// 创建一个结构体数组,用于存储每位同学的信息和成绩
struct Student students[5];
// 循环输入每位同学的信息和成绩
for (int i = 0; i < 5; i++) {
// 输入学号、姓名和3门课程的成绩
printf("请输入第%d位同学的信息:\n", i+1);
printf("学号:");
scanf("%s", students[i].sid);
printf("姓名:");
scanf("%s", students[i].name);
printf("第1门课程成绩:");
scanf("%f", &students[i].scores[0]);
printf("第2门课程成绩:");
scanf("%f", &students[i].scores[1]);
printf("第3门课程成绩:");
scanf("%f", &students[i].scores[2]);
// 计算该同学的平均分
students[i].avg_score = (students[i].scores[0] + students[i].scores[1] + students[i].scores[2]) / 3;
}
// 输出每位同学的姓名及平均分
printf("每位同学的姓名及平均分如下:\n");
for (int i = 0; i < 5; i++) {
printf("%s %.1f\n", students[i].name, students[i].avg_score);
}
return 0;
}
```
这里使用了一个结构体数组来存储每位同学的信息和成绩,循环输入学生信息后,计算每位同学的平均分,然后循环输出每位同学的姓名及平均分。注意在输出时,要使用一个空格来分隔姓名和平均分。
c语言建立n名学生信息登记表,包括学号、姓名、性别及3门课程的成绩,从键盘输入学
以下是建立n名学生信息登记表的C语言代码:
```c
#include <stdio.h>
struct Student {
int studentId;
char name[50];
char gender;
float scores[3];
};
int main() {
int n; // 学生人数
printf("请输入学生人数:");
scanf("%d", &n);
struct Student students[n];
for (int i = 0; i < n; i++) {
printf("请输入第%d个学生的学号:", i+1);
scanf("%d", &students[i].studentId);
printf("请输入第%d个学生的姓名:", i+1);
scanf("%s", students[i].name);
printf("请输入第%d个学生的性别(M表示男性,F表示女性):", i+1);
scanf(" %c", &students[i].gender);
printf("请依次输入第%d个学生的3门课程成绩:", i+1);
for (int j = 0; j < 3; j++) {
scanf("%f", &students[i].scores[j]);
}
}
// 输出学生信息
for (int i = 0; i < n; i++) {
printf("学号:%d\n", students[i].studentId);
printf("姓名:%s\n", students[i].name);
printf("性别:%c\n", students[i].gender);
printf("成绩:");
for (int j = 0; j < 3; j++) {
printf("%.2f ", students[i].scores[j]);
}
printf("\n\n");
}
return 0;
}
```
这段代码首先要求输入学生人数n,然后根据n的值定义一个存储学生信息的数组`students`。接下来,通过遍历数组,依次输入每个学生的学号、姓名、性别和3门课程的成绩。之后,再次遍历数组,打印出每个学生的学号、姓名、性别和成绩。
请注意,在输入学生性别时,为了避免之前输入的换行符对后续输入造成干扰,在`scanf`函数前添加了一个空格。
此外,这段代码假设输入的学生人数n不会超过数组`students`的长度。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)