c语言编程键盘输入5个数 大到小排列输出

尽量短,急求!大大们帮忙

#include<stdio.h>
#define N 5           //定义要排序的个数N为5个
main()                 //主程序开始
{
int a[N],i,j,temp;     //定义数组a,变量i,j和中间存储变量temp
printf("please input %d numbers\n",N);  //输出文本,"请输入N个数字(此处N=5)"
for(i=0;i<N;i++)       //循环语句,利用i循环将N个数存入数组a[i]
scanf("%d",&a[i]);
for(i=0;i<N-1;i++)     
for(j=0;j<N-1-i;j++)   
{
if(a[j]<a[j+1])        //如果前一个数a[j]大于后一个数a[j+1],则2个数互换位置,否则不作任何操作
{
temp=a[j];             
a[j]=a[j+1];           
a[j+1]=temp;           
}
}
printf("the array after sort:\n"); 
for(i=0;i<N;i++)              
printf("%5d",a[i]);                 //输出数组a[i]的值
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-05-09
#define N 5 //定义要排序的个数N为5个
#include"stdio.h"
========================主程序部分=================================
main() //主程序开始
{
int a[N],i,j,temp; //定义数组a,变量i,j和中间存储变量temp
printf("please input %d numbers\n",N); //输出文本,"请输入N个数字(此处N=5)"
====================输入并接收要排序的数===========================
for(i=0;i<N;i++) //循环语句,利用i循环将N个数存入数组a[i]
scanf("%d",&a[i]);
=============================排序===================================
for(i=0;i<N-1;i++)
{
if(a[j]>a[j+1]) //如果前一个数a[j]大于后一个数a[j+1],则2个数互换位置,否则不作任何操作
{
temp=a[j]; //互换位置:将a[j]的值赋给中间变量temp,此时a[j]还是原来的值
a[j]=a[j+1]; //将较小的数a[j+1]的值赋给a[j],a[j]的值此时为较小的那个数,a[j+1]的值未变,仍然是较大的值
a[j+1]=temp; //将之前中间变量temp存的较大的值赋给a[j+1],位置互换结束
}
}
=======================输出排序结果================================
printf("the array after sort:\n"); //输出文本,"排序后的数组为:"
for(i=0;i<N;i++) //循环N次
printf("%5d",a[i]); //输出数组a[i]的值
}
第2个回答  2014-05-09
#include"stdio.h"
main()
{
int i,a[5],j;
for(i=0;i<5;i++)
scanf("%d",&a[i]);
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(a[i]<a[j]) t=a[i],a[i]=a[j],a[j]=t;
for(i=0;i<5;i++)
printf("%d",a[i]);
}
相似回答