输入格式
十个数
输出格式
交换后的十个数
样例输入
10 2 30 40 50 60 70 80 90 100
样例输出
10 100 30 40 50 60 70 80 90 2
我对这题用了两个数组,一个存储原来的值,一个是镜像的绝对值。
找最小的数和序号就在镜像里,遍历寻找就行
- #include
- 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;
- }