0
已解决
杜明泽
资深守护
资深守护
2845 函数实现选择排序
经验值:800 时间限制:1000毫秒
题目描述 Description
输入多组数据,每组数据的第一个数字x表示这组数据中数字的个数,接下来输入x个数字 ,对于每组数据输出一行,为从大到小排序好的序列
输入描述 Input Description
第一行:整数t,表示有t组数据
每组数据一行:第一个数字为x,接下来x个数字为待排序的数字
输出描述 Output Description
输出共t行,每行为从大到小排序好的序列
样例输入 Sample Input
1 11 75 75 61 77 70 78 5 78 44 86 1
样例输出 Sample Output
86 78 78 77 75 75 70 61 44 5 1
数据范围及提示 Data Size & Hint
t<=10, x<=100
0
已采纳
王子桐
高级光能
高级光能
呵呵,我会,你要代码吗?
这道题用到函数的定义,具体的就是
void xxx();
这是我们没学的知识点(但我会,我编游戏就会用到)。
核心如下:
void easy(int [],int);//必不可少的一步!!!
int main(){
cin>>t;
for(int i=1;i<=t;i++){
cin>>x;
for(int j=1;j<=x;j++)
cin>>a[j];
easy(a,x);//跳转函数
cout<<endl;
}
return 0;
}
void easy(int a[],int n){//函数的具体内容
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++)
if(a[i]<a[j])
交换a[i]、a[j];
for(int i=1;i<=n;i++)
cout<<a[i]<<' ';
}
然而,这也可以用for循环……
定义 t,n,a[105];
输入>>t;
for(循环t次){
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
if(a[i]<a[j]){
交换a[i]、a[j];
}
}
}
for(int i=1;i<=n;i++)cout<<a[i]<<' ';
cout<<"\n";//关键点!!!
}
return 0;
}
望采纳!谢谢!!!
0
张恩昊
资深天翼
资深天翼
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
0
0
0