C语言求平均
在C语言中,我们可以使用循环结构和算术运算符来实现求平均的功能,下面是一个简单的示例代码,用于计算一组数的平均值:
#include <stdio.h> int main() { int n, i; // 定义变量n和i,分别表示数组长度和循环计数器 float num[100], sum = 0.0; // 定义浮点型数组num和sum,用于存储输入的数和求和结果 printf("请输入数组的长度:"); scanf("%d", &n); // 读取用户输入的数组长度 printf("请输入%d个整数:", n); for (i = 0; i < n; i++) { scanf("%f", &num[i]); // 读取用户输入的每个整数并存储到数组num中 sum += num[i]; // 将每个整数累加到sum中 } float average = sum / n; // 计算平均值,将sum除以n得到average printf("这组数的平均值为:%.2f ", average); // 输出平均值,保留两位小数 return 0; }
上述代码首先通过scanf
函数获取用户输入的数组长度n
,然后使用一个循环结构for
来逐个读取用户输入的n
个整数,并将它们存储到浮点型数组num
中,使用变量sum
来记录这些数的总和,循环结束后,将总和sum
除以数组长度n
,即可得到平均值average
,使用printf
函数输出平均值,保留两位小数。
请注意,上述代码中的数组长度限制为100,如果需要处理更大的数组,可以根据实际情况进行修改,为了确保程序的正确性,建议在使用循环结构时进行边界检查,避免数组越界的问题。
除了上述的基本实现方式外,还可以使用指针和动态内存分配来实现更灵活的求平均功能,下面是一个使用指针和动态内存分配的示例代码:
#include <stdio.h> #include <stdlib.h> int main() { int n, i; // 定义变量n和i,分别表示数组长度和循环计数器 float *num, sum = 0.0; // 定义浮点型指针num和sum,用于存储输入的数和求和结果 printf("请输入数组的长度:"); scanf("%d", &n); // 读取用户输入的数组长度 // 动态分配内存空间给num指针指向的数组 num = (float *)malloc(n * sizeof(float)); if (num == NULL) { printf("内存分配失败! "); return -1; } printf("请输入%d个整数:", n); for (i = 0; i < n; i++) { scanf("%f", &num[i]); // 读取用户输入的每个整数并存储到数组num中 sum += num[i]; // 将每个整数累加到sum中 } float average = sum / n; // 计算平均值,将sum除以n得到average printf("这组数的平均值为:%.2f ", average); // 输出平均值,保留两位小数 // 释放动态分配的内存空间 free(num); return 0; }
上述代码与之前的示例类似,不同之处在于使用了指针和动态内存分配来创建浮点型数组,通过调用malloc
函数动态分配了一块大小为n * sizeof(float)
的内存空间给指针num
指向的数组,在程序结束时,使用free
函数释放了动态分配的内存空间,以避免内存泄漏的问题。