排序的三种思路 欢迎吐槽

来源:互联网 发布:合金装备5幻痛捏脸数据 编辑:程序博客网 时间:2024/06/08 02:21
#include<stdio.h>int main(){int i,j,a[10],t;printf("请输入10个整数\n");for (i=0;i<10;i++){scanf("%d",&a[i]);}for(i=0;i<10;i++)//总共有十个数{for(j=0;j<=8-i;j++)//从第一次开始一次比9,8,7.。。。次if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];//代换将最大数赋给下标最大者以此类推推a[j+1]=t;}}printf("\n");printf("排列后的数字是\n");for(i=0;i<10;i++)//排序后的十个数printf("%5d",a[i]);printf("\n");//第二个我定义的数组有50个,而且可以自己选测你要输入的个数#include<stdio.h>int main(){int i,j,t,n,a[50];printf("请输入要比较大小的个数n\n");scanf("%d",&n);printf("请输入要比试的那n个数\n");for(i=0;i<n;i++)scanf("%d",&a[i]);//这不能写成n,因为n是常量,但是要输入的是变量。我这就是写错了,a中的元素没有存储对。所以半天都没出来。for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]>a[j])//用·不变的量代换从小到大代换{t=a[i];a[i]=a[j];a[j]=t;}printf("排列后的数是:");for(i=0;i<n;i++)printf("%3d",a[i]);}}
 <pre name="code" class="cpp">#include<stdio.h>int main(){     int i, j, t,m;    int a[9] = { 1, 3, 5, 7, 6, 9, 4, 2, 8 };    for (i = 0; i < 8; i++)        t = i;    for (j = i + 1; j < 9; j++)        if (a[j]>a[t])            t = j;            if (t!=i)//外循环节约时间            {        m= a[i];        a[i] = a[t];        a[t] = m;             }    for (j = 0; j < 9; j++)    {        printf("a[%d]=%d\n", j, a[j]);     } }



0 0
原创粉丝点击