c语言。从键盘输入n个学生的学号和每人m门课程的成绩,计算每个学生的总分及平均分。输出内容包括每个学生的学号、总分和平均分。 不用数组
时间: 2024-05-02 17:22:19 浏览: 38
好的,让我来帮你解决这道题目。首先可以通过循环语句,逐个读取每个学生的学号和各门课程的成绩,然后计算出每个学生的总分和平均分。最后输出每个学生的学号、总分和平均分。
下面是一个示例代码:
```
#include <stdio.h>
int main()
{
int n, m, i, j;
printf("请输入学生人数和课程数:");
scanf("%d %d", &n, &m);
for (i = 1; i <= n; i++) {
int score_sum = 0;
for (j = 1; j <= m; j++) {
int score;
printf("请输入第 %d 位学生的第 %d 门课程成绩:", i, j);
scanf("%d", &score);
score_sum += score;
}
printf("学生 %d 的总分为 %d,平均分为 %.2f\n", i, score_sum, (float)score_sum / m);
}
return 0;
}
```
希望能够帮到你,如果你还有其他问题,请继续提问。
相关问题
c语言。从键盘输入n个学生的学号和每人m门课程的成绩,计算每个学生的总分及平均分。输出内容包括每个学生的学号、总分和平均分。
好的,您的问题是如何使用C语言计算学生的总分和平均分。以下是解决该问题的代码示例:
```c
#include <stdio.h>
#define MAX_N 100 // 学生人数上限
#define MAX_M 10 // 课程数上限
int main()
{
int n, m, i, j; // n: 学生人数,m: 课程数,i, j: 循环计数器
int id[MAX_N], score[MAX_N][MAX_M]; // id: 学生学号,score: 学生成绩
int total[MAX_N], avg[MAX_N]; // total: 学生总分,avg: 学生平均分
// 输入学生信息
printf("请输入学生人数和课程数:\n");
scanf("%d%d", &n, &m);
printf("请输入每个学生的学号和%d门课程的成绩:\n", m);
for (i = 0; i < n; i++) {
scanf("%d", &id[i]); // 输入学生学号
for (j = 0; j < m; j++) {
scanf("%d", &score[i][j]); // 输入学生每门课程的成绩
}
}
// 计算学生总分和平均分
for (i = 0; i < n; i++) {
total[i] = 0;
for (j = 0; j < m; j++) {
total[i] += score[i][j]; // 计算学生总分
}
avg[i] = total[i] / m; // 计算学生平均分
}
// 输出每个学生的学号、总分和平均分
printf("每个学生的学号、总分和平均分为:\n");
for (i = 0; i < n; i++) {
printf("学号:%d,总分:%d,平均分:%d\n", id[i], total[i], avg[i]);
}
return 0;
}
```
上述代码中,我们首先定义了需要用到的一些变量,如学生人数、课程数、学生学号、学生成绩、学生总分、学生平均分等。然后通过多重循环输入每个学生的学号和每门课程的成绩,再通过双重循环计算每个学生的总分和平均分。最后,输出每个学生的学号、总分和平均分。
C语言 从键盘中输入3个学生的学号,姓名和3门课的成绩,输出每个学生的姓名和三门课成绩的平均值
以下是一个解决方案:
```c
#include <stdio.h>
int main() {
int id[3];
char name[3][20];
float score[3][3];
float average[3];
// 从键盘中输入学生信息
for (int i = 0; i < 3; i++) {
printf("请输入第%d个学生的学号、姓名和三门课的成绩:\n", i+1);
scanf("%d %s %f %f %f", &id[i], name[i], &score[i][0], &score[i][1], &score[i][2]);
// 计算平均值
average[i] = (score[i][0] + score[i][1] + score[i][2]) / 3.0;
}
// 输出每个学生的姓名和成绩
printf("学号\t姓名\t成绩1\t成绩2\t成绩3\t平均成绩\n");
for (int i = 0; i < 3; i++) {
printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.1f\n", id[i], name[i], score[i][0], score[i][1], score[i][2], average[i]);
}
return 0;
}
```
这个程序与前一个程序类似,只是在输出时增加了学号和成绩的输出。在循环中,使用 `scanf` 从键盘中输入学生信息,并计算平均值。最后,使用 `printf` 输出每个学生的学号、姓名、三门课成绩和平均值。注意,为了方便对齐,我们使用了 `\t` 水平制表符来分隔输出。