如何使用C语言编程,让用户输入10个整数,然后计算并输出这些数的平均值?同时,找出与该平均值之差的绝对值最小的数组元素,但限制使用abs()函数?
时间: 2024-12-29 22:36:08 浏览: 7
在C语言中,你可以这样做:
```c
#include <stdio.h>
// 自定义函数计算绝对值,避免使用abs()
int custom_abs(int num) {
if (num >= 0)
return num;
else
return -num;
}
int main() {
int nums[10], sum = 0, min_diff = INT_MAX; // 初始化数组和两个变量
float avg;
printf("请输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &nums[i]);
sum += nums[i]; // 计算总和
}
avg = (float)sum / 10; // 计算平均值
for (int i = 0; i < 10; i++) {
int diff = custom_abs(nums[i] - avg); // 计算每个数与平均值的差
if (diff < min_diff) { // 如果新差值更小,更新min_diff
min_diff = diff;
}
}
printf("这些数的平均值是 %.2f.\n", avg);
printf("与平均值之差的绝对值最小的元素是 %d,差值是 %d.\n", nums[0], min_diff); // 输出结果,因为我们假设第一个元素是最接近平均值的
return 0;
}
```
在这个程序中,我们首先定义了一个自定义的`custom_abs`函数来代替标准库中的`abs`函数。接着,我们循环读取用户输入的10个整数,并累加求和,计算平均值。再次遍历数组,计算每个数与平均值的差的绝对值,并更新`min_diff`。最后,我们输出平均值和找到的那个元素及其差值。
阅读全文