输入n和n个整数,输出其中绝对值最小的数。 (提示:输入有2行,第一行是n,第二行是n个整数) 输入: 6 4 5 -6 -9 -2 输出: -2 用C语言
时间: 2024-12-19 21:13:50 浏览: 17
在C语言中,你可以通过以下步骤来解决这个问题:
1. 首先,声明并初始化两个变量`min_num`和`abs_min`。`min_num`用于存储当前找到的最小数值,而`abs_min`则用于保存绝对值最小的数(初始值设为正无穷大)。
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n;
scanf("%d", &n);
int min_num = INT_MAX; // 初始化为最大负整数
int abs_min = INT_MAX; // 初始化为最大整数
int numbers[n];
```
2. 然后,读取n个整数到数组`numbers`中,并遍历这个数组,对每个元素计算绝对值并与当前`abs_min`比较。
```c
for (int i = 0; i < n; i++) {
scanf("%d", &numbers[i]);
if (numbers[i] < min_num) { // 如果当前数更小,更新min_num
min_num = numbers[i];
} else if (numbers[i] > 0 && numbers[i] < abs_min) { // 如果当前数的绝对值更小,更新abs_min
abs_min = numbers[i];
}
}
```
3. 最后,输出结果是`abs_min`而不是`min_num`,因为我们需要的是绝对值最小的那个数。
```c
printf("%d\n", abs_min); // 输出绝对值最小的数
return 0;
}
```
阅读全文