输入格式
十个数
输出格式
交换后的十个数
样例输入
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; //记录序号 交换本体numsint 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~9nums[9] = temp;for (int i = 0; i < 10; i++) {cout << nums[i] << " ";}return 0;
}