定义一个长度为20的一维数组,用于存放20个学生的C语言成绩,定义一个求平均分函数,在主函数中调用,求平均成绩并输出。c语言
时间: 2024-03-24 16:41:52 浏览: 81
好的,以下是实现代码:
```c
#include <stdio.h>
float average(float arr[], int n) {
float sum = 0;
for (int i = 0; i < n; i++) {
sum += arr[i];
}
return sum / n;
}
int main() {
float scores[20];
printf("请输入20个学生的成绩:\n");
for (int i = 0; i < 20; i++) {
scanf("%f", &scores[i]);
}
float avg = average(scores, 20);
printf("平均成绩为:%.2f\n", avg);
return 0;
}
```
在主函数中,我们定义了一个长度为20的一维数组 `scores` 来存放20个学生的成绩,并且利用 `for` 循环和 `scanf` 函数依次输入每个学生的成绩。接着,我们调用 `average` 函数来求平均成绩,并将结果赋值给变量 `avg`,最后输出平均成绩即可。
需要注意的是,我们在求平均成绩的时候,将分数相加的过程和计算平均数的过程分开了,这样可以提高代码的可读性。同时,我们利用了 `%f` 格式控制符来读取浮点数类型的数据,并在输出时使用了 `%.2f` 格式控制符来保留小数点后两位。
相关问题
用c语言定义一个长度为 20 的一维数组,用于存放 20个学生的 C 语言成绩,定文一个 求平均分函数,在主两数中调用,求乎均成绩并输出。
好的,这是代码实现:
```
#include <stdio.h>
float average(float scores[], int n);
int main() {
float scores[20];
printf("请输入20个学生的C语言成绩:\n");
for (int i = 0; i < 20; i++) {
scanf("%f", &scores[i]);
}
printf("平均成绩为:%.2f\n", average(scores, 20));
return 0;
}
float average(float scores[], int n) {
float sum = 0;
for (int i = 0; i < n; i++) {
sum += scores[i];
}
return sum / n;
}
```
代码解释:
1. 首先定义了一个长度为20的float类型数组,用于存放20个学生的C语言成绩。
2. 在主函数中使用for循环,输入20个学生的C语言成绩。
3. 调用average函数,求出平均成绩,并输出。
4. average函数接受一个float类型的数组和数组的长度n作为参数,遍历数组,将数组中的数相加,最后返回平均值。
用c语言有一个一维数组用于存放10个学生的成绩,要求编写三个函数分别求学生的平均成绩,求10个学生的最高分,求10个学生的最低分,在主函数中调用这三个函数得到结果。
题目要求用C语言编写一个一维数组,用于存放10个学生的成绩。同时,需要编写三个函数,分别用于求学生的平均成绩、求10个学生的最高分和求10个学生的最低分。最后,在主函数中调用这三个函数,得到结果。
具体实现方法如下:
1. 定义一个长度为10的一维数组,用于存放10个学生的成绩。
2. 编写一个函数,用于求学生的平均成绩。该函数需要遍历数组,将所有成绩相加,然后除以10,得到平均成绩。
3. 编写一个函数,用于求10个学生的最高分。该函数需要遍历数组,找到最大值并返回。
4. 编写一个函数,用于求10个学生的最低分。该函数需要遍历数组,找到最小值并返回。
5. 在主函数中,分别调用这三个函数,得到平均成绩、最高分和最低分,并输出结果。
具体代码如下:
#include <stdio.h>
#define NUM 10
int scores[NUM];
float get_average_score()
{
int sum = ;
for(int i = ; i < NUM; i++)
{
sum += scores[i];
}
return (float)sum / NUM;
}
int get_max_score()
{
int max = scores[];
for(int i = 1; i < NUM; i++)
{
if(scores[i] > max)
{
max = scores[i];
}
}
return max;
}
int get_min_score()
{
int min = scores[];
for(int i = 1; i < NUM; i++)
{
if(scores[i] < min)
{
min = scores[i];
}
}
return min;
}
int main()
{
printf("请输入10个学生的成绩:\n");
for(int i = ; i < NUM; i++)
{
scanf("%d", &scores[i]);
}
float average_score = get_average_score();
int max_score = get_max_score();
int min_score = get_min_score();
printf("平均成绩为:%.2f\n", average_score);
printf("最高分为:%d\n", max_score);
printf("最低分为:%d\n", min_score);
return ;
}
阅读全文