输入格式
十个数
输出格式
交换后的十个数
样例输入
10 2 30 40 50 60 70 80 90 100
样例输出
10 100 30 40 50 60 70 80 90 2
我对这题用了两个数组,一个存储原来的值,一个是镜像的绝对值。
找最小的数和序号就在镜像里,遍历寻找就行
#include<iostream>
using namespace std;
int main() {
//int n;
//cin >> n;
//int* nums = new int[n];
int nums[10] ;
int nus[10];//镜像的,作为绝对值
//10个数字
for (int i = 0; i < 10; i++) {
cin >> nums[i];
if (nums[i] < 0) {
nus[i] = -1 * nums[i];
}
else {
nus[i] = nums[i];
}
}
//遍历镜像数组 找最小の’绝对值‘
int Min = nus[0];
int cnt = 0; //记录序号 交换本体nums
int i;
for (i = 0; i < 10; i++)
{
if (Min > nus[i]) {
Min = nus[i];
cnt = i;
}
}
//交换本体Min并输出
int temp = nums[cnt]; //绝对值最小の数
nums[cnt] = nums[9]; //最后一个数 数组从0~9
nums[9] = temp;
for (int i = 0; i < 10; i++) {
cout << nums[i] << " ";
}
return 0;
}