永发信息网

有一组数据试编写一程序,将它们按由大到小的确顺序排列并输

答案:4  悬赏:70  手机版
解决时间 2021-02-10 06:14
  • 提问者网友:献世佛
  • 2021-02-10 01:28
有那位兄台帮忙解答一下数据组为:3,8,2,9,10,30,1,2
最佳答案
  • 五星知识达人网友:琴狂剑也妄
  • 2021-02-10 01:53
#include "stdio.h"
main()
{int i,j,t;
int a[8]={3,8,2,9,10,30,1,2};
for (i=0;i<8;i++)
{for (j=7;j>i;j--)
if (a[j]<a[j-1])
{t=a[j];
a[j]=a[j-1];
a[j-1]=t;
}
}
for (i=7;i>=0;i--)
printf("%d ",a[i]);
}



不知道我这样写你看不看得懂。。这个方法是气泡法按小到大排序,最后把大的先输出。
全部回答
  • 1楼网友:鱼忧
  • 2021-02-10 06:08
上面的3种方法都很好哦
  • 2楼网友:迷人又混蛋
  • 2021-02-10 04:28
main() {int i,j,p,q,s,a[8]={3,8,2,9,10,30,1,2}; clrscr();\\清屏 for(i=0;i<8;i++) {p=i;q=a[i]; for(j=i+1;j<8;j++) if(q<a[j])\\判断是否交换 {p=j;q=a[j];} if(i!=p)\\判断是否已经交换 {s=a[i];a[i]=a[p];a[p]=s;}\\交换 printf(\"a[%d]=%d\\n\",i,a[i]); } }
  • 3楼网友:佘樂
  • 2021-02-10 03:08
#include<stdio.h> main() { int a[8],i,max,temp; for(i=0;i<8;i++) scanf("%d",&a[i]); max=a[0]; for(i=1;i<8;i++) if(max<a[i]) {temp=max;max=a[i];a[i]=temp;} for(i=0;i<8;i++) printf("%d",a[i]); }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯