解题思路:
注意点:1、绝对值函数abs();
2、排序(可选择冒泡排序、快速排序、归并排序等方法)。
这道题唯一的一个小难点是,输入的值要按照其绝对值的大小进行降序排列,并不是对其绝对值进行排列,因此我们只要在排序判断时对这些数的绝对值大小进行判断就可以了,交换数值顺序还是按照其原值来进行,这样,输出的结果就会带上其原本的符号。
注意事项:
参考代码:
#include<iostream> #include<math.h> using namespace std; int main(){ int n; while(cin >> n && n!= 0){ int a[n]; for(int i = 0;i < n;i++){ cin >> a[i]; } for(int i = 0;i < n - 1;i++){ for(int j = 0;j < n - 1 - i;j++){ if(abs(a[j]) < abs(a[j + 1])){ swap(a[j],a[j + 1]); } } } for(int i = 0;i < n;i++){ cout << a[i] << " "; } } return 0; }
0.0分
32 人评分