数组的问题

主页 讨论版 问题 名次 状态 统计



问题 C: 语言基础练习——多组数字排序(循环)

时间限制: 1 Sec  内存限制: 128 MB
提交: 773  解决: 413
[提交][状态][讨论版]

题目描述

给定m组n个正整数,将每一组数字从小到大进行排序。

输入

输入数据有多组,每组数据占一行,每行的第一个数正整数n(1<=n<=20),表示整数个数,后面接n个正整数。当n为0时,不作任何处理,输入结束。

输出

输出每组排序的结果。

样例输入

2 1 2 3 121 10 111 0

样例输出

1 2 10 111 121

#include<stdio.h>
int main()
{
    int a,i;
     
    for(i=0;;i++)
    {
        scanf("%d",&a);
//        输入的个数
        if(a==0)
        break;
        int b[a],j,k,t;
        for(j=0;j<a;j++)
        scanf("%d",&b[j]);
        for(j=0;j<a-1;j++)
//        这里有点不清楚为什么要a-1
        {
            for(k=0;k<a-1;k++)
//            一样为什么要a-1
            {
                if(b[k]>b[k+1])
                {
                    t=b[k];
                    b[k]=b[k+1];
                    b[k+1]=t;
                }
//                大小交换位置
             }
        }
        for(j=0;j<a;j++)
//        这里为什么又是<a了,而不是a-1
        {
            if(j==a-1)
            printf("%d",b[j]);
            else printf("%d ",b[j]);
        }
//        这里一段都没看懂
        printf("\n");
         
    }
    return 0;
 }
 
 
 
// 最重要最重要的是卡在a-1了/(ㄒoㄒ)/~~
求大神帮助!!!!


唐朝栗子猫咪
浏览 1700回答 1
1回答

小号

是不是我老了?不知道C语言已经强大到可以这样子定义数组了:int a ; sanf("%d",&a);int array[a];????这样子也可以了?
打开App,查看更多内容
随时随地看视频慕课网APP