问答详情
源自:4-15 结束语句之continue语句

错在哪 求 解!

#include <stdio.h>

int main()

{

    int a[10] = {0};

    for (int i = 0; i < 10 , i++)

    {

        a[i] = arc4random()%50;

        printf ("%d",a[i]);

    }

    for (int i = 0; i < 10-1 ;i++ )

    {

        for(int j = 0;j< 10-1-i ;j++)

        {

            if(a[j] > a[j+1])

            {

                int temp = a[j];

                a[j] = a[j+1];

                a[j+1] = temp ;

            }

        }

    }

    printf ("\n");

    for (int i = 0;i < 10 ;i++)

    {

        printf("%d",a[i]);

    }

}

    return 0;

}


提问者:youhaihui 2015-08-27 15:01

个回答

  • xunluzhe
    2015-10-25 22:53:40

    在头文件#include<stdio.h>中不包含随机函数random(),应该添加头文件#include<stdlib.h>.

    而且只有在c99标准中才能在for循环内定变量,还有在for循环内应用分号隔开表达式。代码如下:

    #include <stdio.h>
    #include<stdlib.h>
    int main()
    {   int i,j;
        int a[10] = {0};
        for ( i = 0; i < 10 ; i++)
        {
            a[i] = random()%50;
            printf ("%d",a[i]);
        }
        for ( i = 0; i < 10-1 ;i++ )
        {
            for( j = 0;j< 10-1-i ;j++)
            {
                if(a[j] > a[j+1])
                {
                    int temp = a[j];
                    a[j] = a[j+1];
                    a[j+1] = temp ;
                }
            }
        }
        printf ("\n");
        for (  i = 0;i < 10 ;i++)
        {
            printf("%d",a[i]);
        }
       return 0;
        
    }


  • 一缕火光焚燎原
    2015-10-20 01:14:47

    感觉没错啊!内层循环得到最大值并存储在a[10-i]中外层循环九次,得到九个最大值,最小值在a[0]中,然后打印从小到大的随机数字。

  • 刘伶
    2015-08-27 15:09:47

     你这是冒泡排序吧,为什么要i< 10 -1 ?