用C语言编写使用一维数组保存5名同学的成绩,计算并输出平均分
时间: 2024-02-13 21:03:49 浏览: 109
好的,针对你的问题,我可以提供以下的C语言代码来实现:
```c
#include <stdio.h>
int main() {
float grades[5];
float sum = 0, avg;
int i;
printf("请输入5名同学的成绩:\n");
for (i = 0; i < 5; i++) {
scanf("%f", &grades[i]);
sum += grades[i];
}
avg = sum / 5;
printf("平均分为:%.2f\n", avg);
return 0;
}
```
上述代码中,我们定义了一个一维数组 `grades` 来保存5名同学的成绩。使用 `for` 循环接受用户输入成绩,并且累加总成绩到 `sum` 变量中。
最后,计算平均分并输出。注意,我们使用了 `%.2f` 格式化符号,来保留小数点后两位,以便输出更加精确的结果。
希望这个代码对你有所帮助!
相关问题
给A,B,C,D,E五位同学投票,设计一个一维数组保存他们所得票数。请用C语言编写一个用键盘输入投票的方式的投票程序。
好的,我明白了。下面是回答:
可以使用以下 C 语言代码编写投票程序:
```c
#include <stdio.h>
int main() {
int votes[5] = {0}; // 初始化票数数组为0
char candidates[5] = {'A', 'B', 'C', 'D', 'E'}; // 候选人名称
int voter_count = 0; // 投票人数
printf("请开始投票,每个数字代表该候选人的编号:\n");
printf("1. A\n2. B\n3. C\n4. D\n5. E\n");
printf("请输入投票人数:");
scanf("%d", &voter_count);
// 循环读取每个选民的投票
for (int i = 0; i < voter_count; i++) {
int vote = 0;
printf("请输入第%d位选民的投票编号:", i+1);
scanf("%d", &vote);
// 检查投票是否合法
if (vote >= 1 && vote <= 5) {
// 将该候选人的票数加一
votes[vote-1]++;
} else {
printf("投票无效,请重新输入。\n");
i--; // 投票无效,需重新输入
}
}
// 输出候选人票数
printf("投票结果:\n");
for (int i = 0; i < 5; i++) {
printf("%c : %d 票\n", candidates[i], votes[i]);
}
return 0;
}
```
程序中,先定义了一个整型数组 votes 存放每位候选人所得票数。初始为 0。再定义一个字符型数组 candidates 存放每位候选人的名称。之后,程序提示用户输入投票人数 voter_count。使用 for 循环来读取每个选民的投票,使用 if 判断输入的投票是否合法。如果有效,则将该候选人的票数加一。
最后,程序输出各候选人的得票数。
用C语言编写代码实现求一维数组a[20]中的最大值及其位置。
以下是用C语言编写的代码,实现求一维数组a[20]中的最大值及其位置:
```c
#include <stdio.h>
#include <stdlib.h>
void findMax(int a[], int n, int *max, int *index) {
*max = a[0];
*index = 0;
for (int i = 1; i < n; i++) {
if (a[i] > *max) {
*max = a[i];
*index = i;
}
}
}
int main() {
int a[20] = {4, 2, 6, 8, 11, 5};
int max, index;
findMax(a, 20, &max, &index);
printf("Max = %d, Index = %d\n", max, index);
return 0;
}
```
该代码定义了一个函数`findMax`,该函数接收一个一维数组`a`、数组长度`n`以及两个指针`max`和`index`作为参数。函数通过遍历数组找到最大值及其位置,并将结果保存在`max`和`index`指针所指向的变量中。
在`main`函数中,我们定义了一个一维数组`a`,并调用`findMax`函数来求解最大值及其位置。最后,我们使用`printf`函数将结果输出到控制台。
阅读全文