c语言编程输入十个数,空格分隔6 4 8 9 3 2 0 1 5 7输出1 2 3 4 5 6 7

c语言编程输入十个数,空格分隔6 4 8 9 3 2 0 1 5 7输出1 2 3 4 5 6 7 8 9 0,

#include <stdio.h>

int main()
{
    int a[10];
    int i,j,temp;
    for(i = 0;i<10;i++)              //输入10个数
    {
        scanf("%d",&a[i]);
    }

    for(i = 0;i<10;i++)              //双循环对数组进行排序
        for(j = i+1;j<10;j++)
        {
            if(a[i] > a[j])
            {
                temp = a[i];
                a[i] = a[j];
                a[j] = temp;
            }
        }
    temp = a[0];                   //排序后a[0]=0,但需要将0放到最后面,故可以先保存
                                   //a[0],然后将数组元素向前
    for(i = 0;i<9;i++)
    {
        a[i] = a[i+1];
    }
    a[9] = temp;                   //数组移完后将a[0]放到最后面,即a[9] = a[0]

    for(i = 0;i<10;i++)            //将数组输出
    {
        printf("%d ",a[i]);
    }
}

下面是我自己的运行结果:


希望可以帮助你,不求你的积分,只是希望你能够看懂这个程序,毕竟大家都曾是菜鸟,慢慢提高自己,加油!!!!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-14
#include"stdio.h"
int main()
{
int i,a[10];
for(i=0;i<10;i++) scanf("%d",&a[i]);

printf("1 2 3 4 5 6 7 8 9 0");
}
第2个回答  2013-11-13
#include"stdio.h"
int main()
{
    int i,j,t,a[10];
    for(i=0;i<10;i++) scanf("%d",&a[i]);

    for(i=0; i<9; i++)
    {
        for(j=0;j<9-i;j++)
        {
            if(a[j]>a[j+1]) t=a[j],a[j]=a[j+1],a[j+1]=t;
        }
    }
    for(i=0;i<10;i++) printf("%d ",a[i]);
    return 0;
}

这是冒泡排序 很简单  有问题欢迎追问

追问

谢谢

不能运行啊

结果不对

追答

不会吧。。我用的是CodeBlocks没问题 反正冒泡排序就这思想 你自己懂就行

追问

追答

哦 0是最后输出是吧 把a[0]拿出来最后输出就行 先前没看清题o(* ̄▽ ̄*)o

追问