C语言数组的基础问题

为什么用自己的编译器,无法输出啊?

#include
int main()
{
    int n,i,k=0,max;
    scanf("%d",&n);
    int a[n];
    for(i=0;iscanf("%d",&a[i]);
    }    
    for(max=a[0],i=0;iif(a[i]>max)
        {   
            max=a[i];
            k=i;
        }
    }    
    printf("%d %d\n",max,k);
    return 0;
}



img


为什么用自己的编译器,无法输出啊?

你输入了吗?把输入界面截图看一下

可以运行呀,编译器的问题吧。你用的什么编译器

img


你把 max=a[0] 提出来看看。可能是编译器的原因,也可能是输入的原因。

#include <stdio.h>
int main() {
    int n,i,k=0,max;
    scanf("%d",&n);
    int a[n];
    for(i=0; i<n; i++) {
        scanf("%d",&a[i]);
    }
    max=a[0]; // 修改这里
    for(i=0; i<n; i++) {
        if(a[i]>max) {
            max=a[i];
            k=i;
        }
    }
    printf("%d %d\n",max,k);
    return 0;
}

img

修改如下,供参考:

#include <stdio.h>
#define N 11       //修改
int main() {
    int n, i, k, max, a[N];//修改
    scanf("%d", &n);
    for (i = 0; i < n; i++) {
        scanf("%d", &a[i]);
    }
    max = a[0]; k = 0; // 修改
    for (i = 0; i < n; i++) {
        if (a[i] > max) {
            max = a[i];
            k = i;
        }
    }
    printf("%d %d", max, k); // 修改
    return 0;
}