c语言,由键盘上输入n个整数,这些数有正有负,也没有被排序。宝宝讨厌负数,想把这些数向右平移,移动规则是让数列中的最小值落在坐标轴原点上。 宝宝的方法是先找出数列中的最小值,然后将数列中的每个数都减去最小值,这样就实现数列向右平移了。 输入 输入包括两行: 第一行是n(1 <= n <= 1000)。 第二行是n个整数,邻近两数之间用一个空格隔开。
时间: 2024-02-12 15:03:01 浏览: 30
好的,以下是一种用 C 语言实现的解法:
```c
#include <stdio.h>
int main() {
int n, i, min_val;
int nums[1000];
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d", &nums[i]);
}
min_val = nums[0];
for (i = 1; i < n; i++) {
if (nums[i] < min_val) {
min_val = nums[i];
}
}
if (min_val < 0) {
for (i = 0; i < n; i++) {
nums[i] -= min_val;
}
}
for (i = 0; i < n; i++) {
printf("%d ", nums[i]);
}
printf("\n");
return 0;
}
```
首先,我们定义了一个数组nums来存放输入的整数。然后,我们用for循环读入n个整数,存储到数组中。接着,我们遍历数组,找到最小值。如果最小值小于0,说明原数列中含有负数,我们需要将整个数列向右平移才能让最小值落在坐标轴原点上。因此我们再用for循环将每个数字减去最小值,实现数列向右平移。最后,我们再用for循环将处理后的数字列表输出。
希望这个代码可以解决你的问题。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)