风回半汀雁 2020-11-05 23:20 采纳率: 0%
浏览 28

先不论冒泡有什么问题,为什么我每次用了循环输入数组后再打for循环总是不行

#include<stdio.h>

int main ()
{
    int n,a[n],i,j,temp;
    scanf("%d",&n);
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    for(i=0;i<n-1;i++)
    {
        for(j=0;j<=n-1-i;j++)
        {
            if(a[i]>a[i+1])
            {
                temp=a[i];
                 a[i]=a[i+1];
                a[i+1]=temp;
            }
        }
    }
    for (i=0;i<n;i++)
    printf("%d",a[i]);
    
}

 

  • 写回答

1条回答 默认 最新

  • a5156520 2023-05-25 10:10
    关注

    把定义数组a放到n获取了值之后就可以了,因为如果放到n获取值之前,则n的值是个内存的随机值,所以会报错。

    修改如下:

    
    #include<stdio.h>
    
    int main ()
    {
        int n,i,j,temp;
        scanf("%d",&n);
        // 将数组的定义放到输入了n的值之后 
        // 如果放到n获取值之前,则n的值是个内存的随机值,所以会报错 
        int a[n]; 
        for(i=0;i<n;i++)
            scanf("%d",&a[i]);
        for(i=0;i<n-1;i++)
        {
            for(j=0;j<=n-1-i;j++)
            {
                if(a[i]>a[i+1])
                {
                    temp=a[i];
                     a[i]=a[i+1];
                    a[i+1]=temp;
                }
            }
        }
        for (i=0;i<n;i++)
        printf("%d ",a[i]);
        
    }
    

    img

    评论

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度