3912 - 排序小游戏
时间限制 : 1 秒
内存限制 : 128 MB
排序小游戏
今天上 c 语言课的时候小明被一道题给难倒啦!
平日里小明不喜欢看书,没好好看 C 语言书,今天被难倒了吧!
小明看着 C 老师给出的一排排序数据伤心不已,心里暗暗发誓,以后
一定好好看 C 语言书,一定好好学习,还好亡羊补牢为时不晚。
经过小明的不懈努力最终 AC 了那道题!
而今天这道题有点小变化,仔细看清楚哦!希望不要难倒你哦!
题目输入
第一行有一个整数 T(T <= 10)表示有 T 组测试数据,第二行有一个整数 N (0 < N <= 100)表示有N个整数(-51<N<51)
题目输出
每组测试数据输出 N 个整数,并且这 N 个数是按照绝对值的大小从大到小排列每个数
之间有一个空格,(最后一个数无空格)。
输入/输出样例
输入格式
2 4 -1 -3 2 0 5 -5 3 -1 2 6
输出格式
-3 2 -1 0 6 -5 3 2 -1
C语言解答
#include<stdio.h> #include<math.h> #include<string.h> int main() { int n,i,j,t,m,x; int a[101]; scanf("%d",&n); while(n--) { scanf("%d",&t); for(i=0;i<t;i++) scanf("%d",&a[i]); for(j=0;j<t-1;j++) for(i=0;i<t-1-j;i++) if(fabs(a[i])<fabs(a[i+1])) { x=a[i]; a[i]=a[i+1]; a[i+1]=x; } printf("%d",a[0]); for(i=1;i<t;i++) printf(" %d",a[i]); printf("\n"); } return 0; }
C++解答
#include <iostream> #include <algorithm> #include <cmath> #include <cstdio> using namespace std; const int maxx=105; int a[maxx]; //bool cmp(int a,int b) //{ // return (fabs(a)>fabs(b)); //} int main() { //freopen("cinn.txt","r",stdin); //freopen("cout.txt","w",stdout); int T; cin>>T; while(T--) { int i,n; cin>>n; for(i=0; i < n; i++) { cin>>a[i]; } // sort(a,a+n,cmp); for(i = 0; i < n - 1; i ++) for(int j = 0; j <n - i - 1; j ++) if(fabs(a[j])<fabs(a[j+1])) { int t=a[j]; a[j] = a[j+1]; a[j+1] = t; } cout<<a[0]; for(i=1; i<n; i++) cout<<" "<<a[i]; cout<< endl; } return 0; }