用c语言换个方法回答
时间: 2024-12-02 09:21:49 浏览: 10
在C语言中,我们可以不用`scanf`函数直接从用户输入读取分数,而是使用`getchar()`函数逐个获取输入字符,当遇到逗号或换行符时停止输入。下面是一个简单的示例,演示如何计算五门课成绩的平均分:
```c
#include <stdio.h>
#include <string.h>
#define MAX_SCORES 5
int main()
{
float scores[MAX_SCORES];
int i = 0;
float sum = 0.0;
char input;
// 获取五门课成绩
while (i < MAX_SCORES)
{
printf("请输入第 %d 门课的成绩:", i + 1);
input = getchar(); // 逐个获取字符
if (input == ',' || input == '\n') // 如果输入的是逗号或换行
break; // 结束输入
scanf("%f", &scores[i]); // 读取一次完整的浮点数
sum += scores[i]; // 累加总分
++i; // 指针移动到下一个位置
}
// 计算平均分
float average = (sum / (float)i);
// 输出平均成绩
printf("五门课的平均成绩是:%.2f\n", average);
return 0;
}
```
这个版本的程序允许用户逐次输入分数,直到输入逗号或换行为止。然后将所有分数累加并除以分数的数量来计算平均分。
阅读全文