数组排序
时间: 1ms 内存:128M
描述:
输入5个未排序的整数,对其进行排序,然后从大到小输出这5个数在下面代码的基础上完成,提交时只提交begin所在行和end所在行之间的代码。#include <iostream>using namespace std;int main(){int a[5];int i;for(i=0;i<5;i++) //为数组元素赋值cin>>a[i];//对数组元素排序后从大到小输出//-----begin-------//-----end--------return 0;}
输入:
5个未排序的整数
输出:
5个从大到小的有序数
示例输入:
2 5 1 3 4
示例输出:
5 4 3 2 1
提示:
参考答案(内存最优[1096]):
#include<stdio.h>
int main()
{
int i,t,j,a[5];
for(i=0; i<5; i++)scanf("%d",&a[i]);
for(j=0; j<4; j++)
for(i=0; i<4-j; i++)
{
if(a[i]<a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
for(i=0; i<5; i++)printf("%d ",a[i]);
return 0;
}
参考答案(时间最优[0]):
#include <iostream>
using namespace std;
int main()
{
int a[5];
int i;
for(i=0;i<5;i++) //为数组元素赋值
cin>>a[i];
//对数组元素排序后从大到小输出
//-----begin-------
int j;
int t;
for(i=0;i<4;i++) //从大到小排序
for(j=0;j<4-i;j++)
if(a[j]<a[j+1]) //如果前面的元素比后面相邻的元素小,则进行交换
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
for(i=0;i<5;i++) //正向输出从大到小排序后的数组元素
cout<<a[i]<<" ";
//-----end--------
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。
