为了账号安全,请及时绑定邮箱和手机立即绑定

错在哪 求 解!

#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;

}


正在回答

3 回答

在头文件#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;
    
}


0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926207    人
  • 解答问题       20797    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

错在哪 求 解!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信