马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目 5个数排序
这是一个签到题。要求你对五个数排序并且输出。例如:本题目要求读入一行五个数字,然后排序并输出排序后的五个数字。
输入格式:请在这里写输入格式。例如:输入在一行中并且给出5个数字
输出格式:请在这里描述输出格式。例如:对每一组输入,在一行中输出排序完的数字。(末尾无空格o( ̄▽ ̄)ブ)
输入样例:在这里给出一组输入。例如:
3 2 1 4 5
输出样例:在这里给出相应的输出。例如:
1 2 3 4 5
我的代码 - #include <stdio.h>
- int main()
- {
- int num[4];
- int i,j,temp;
- for(i=0;i<=4;i++)
- {
- scanf("%d",&num[i]);
- }
- for(i=0;i<4;i++)
- {
- for(j=i+1;j<=4;j++)
- {
- if(num[i]>num[j])
- {
- temp=num[i];
- num[i]=num[j];
- num[j]=temp;
- }
- }
- }
- for(i=0;i<=4;i++)
- {
- printf("%d ",num[i]);
- }
- printf("\b");
- return 0;
- }
复制代码
但结果是
而在codeblock里面是可以运行的,所以想问怎么改进,缩短代码运行时间。
试试这个代码呢
- #include <stdio.h>
- int main(void)
- {
- int d[5] , i , j , k ;
- for(i = 0 ; i < 5 ; i ++) scanf("%d" , & d[i]) ;
- for(i = 0 ; i < 4 ; i ++) {
- for(j = i + 1 ; j && d[j] < d[j - 1] ; j --) {
- k = d[j - 1] ;
- d[j - 1] = d[j] ;
- d[j] = k ;
- }
- }
- for(i = 0 ; i < 5 ; i ++) {
- if(i) printf(" ") ;
- printf("%d" , d[i]) ;
- }
- printf("\n") ;
- }
复制代码
|