c语言由键盘上输入n个整数,这些数有正有负,也没有被排序。宝宝讨厌负数,想把这些数向右平移,移动规则是让数列中的最小值落在坐标轴原点上。 宝宝的方法是先找出数列中的最小值,然后将数列中的每个数都减去最小值,这样就实现数列向右平移了。 输入 输入包括两行: 第一行是n(1 <= n <= 1000)。 第二行是n个整数,邻近两数之间用一个空格隔开。 输出 输出减去最小值之后的n个整数,邻近两数之间用一个空格隔开。 输入示例 4 15 -20 -15 18 输出示例 35 0 5 38
时间: 2024-02-12 22:03:01 浏览: 32
好的,这是一道简单的题目,可以用 C 语言来解决。以下是代码示例:
```c
#include <stdio.h>
#include <limits.h>
int main() {
int n, min = INT_MAX; // 初始化最小值为 int 类型的最大值
scanf("%d", &n); // 输入 n
int nums[n]; // 定义一个大小为 n 的数组
for (int i = 0; i < n; i++) {
scanf("%d", &nums[i]); // 输入数组元素
if (nums[i] < min) { // 找到最小值
min = nums[i];
}
}
for (int i = 0; i < n; i++) {
printf("%d ", nums[i] - min); // 输出减去最小值之后的数
}
return 0;
}
```
以上代码中,我们首先定义了一个整型变量 `min` 来保存数组中的最小值,初始值设为 int 类型的最大值。然后,我们通过循环输入数组元素,并在循环体中找到最小值。接着,我们再次循环数组元素,输出减去最小值之后的数即可。
相关问题
由键盘上输入n个整数,请你使用循环获取这些数,然后输出它们的相反数C语言
代码如下:
```c
#include <stdio.h>
int main() {
int n, num;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &num);
printf("%d ", -num);
}
return 0;
}
```
这段代码可以从键盘上输入n个整数,然后使用循环获取这些数,并输出它们的相反数。
C语言由键盘上输入n个整数,忽略这些数的正负号,请你分离出每个数的各位数字,统计所有数字之和
好的,这是一个编程问题,我们来一步步分析。
首先,我们需要从键盘上输入n个整数,并且忽略它们的正负号,代码如下:
```c
#include<stdio.h>
#include<math.h>
int main(){
int n, num, sum = 0;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &num);
num = abs(num); // 忽略正负号
while (num > 0) { // 把每个数字拆分开来,并计算它们的和
sum += num % 10;
num /= 10;
}
}
printf("%d", sum);
return 0;
}
```
接下来,我们要分离每个数的各位数字,可以通过不断地取模和整除10来实现。
最后,我们统计所有数字之和,可以使用一个变量来累加每个数字的值。
以上就是代码实现的基本思路。希望对你有所帮助!