m0_70029950 2022-06-02 19:04 采纳率: 79.2%
浏览 28
已结题

关于无法输入直接无内容输出的问题

问题遇到的现象和发生背景

编译没问题,但是无法输入,运行后没有输入直接无内容输出

问题相关代码,请勿粘贴截图
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int n,a[n],i,t,max;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=0;i<n;i++)
    {
        if(a[i]>a[i+1])
        {
            t=a[i];
            a[i]=a[i+1];
            a[i+1]=t;
        }
    }
    for(i=n;i>n-n/2;i--)
    {
        max=max+a[i]/2;
    }
    printf("%d\n",max);
    return 0;
}

运行结果及报错内容

img

我想要达到的结果

以此题为例
输入
5
4 5 6 7 8
输出
7

  • 写回答

2条回答 默认 最新

  • 关注
        int n,a[n],i,t,max; -> 初始化为乱值,试图使用乱初始化值初始化变长数组,直接把编译器搞over了。
    
     for(i=0;i<n;i++) ->越界
        {
            if(a[i]>a[i+1])
    
    for(i=n;i>n-n/2;i--) ->越界
        {
            max=max+a[i]/2;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月11日
  • 已采纳回答 6月3日
  • 创建了问题 6月2日