请问如下一段代码编译时为什么总显示:下标需要数组或指针类型

# include <stdio.h>


int main(void)

{

int len, i;

scanf("%d", &len);

int a[len];

int max, min, j;


for(i=0; i<len; ++i)

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

max = a[0];

min = a[0];

for(i=1; i<len; ++i)

{

if(max < a[i])

{

j = max;

max = a[i];

a[i] = j;

}

if(min > a[i])

{

j = min;

min = a[i];

a[i] = j;   //编译器提示问题在这,但是总想不出为什么??

}

}


return 0;

}


慕粉1474260965
浏览 1358回答 1
1回答

江户川秋风

看本代码第12行注释#include <stdio.h> int main(void) { int len, i; printf("输入数字的个数:"); scanf("%d", &len); int a[len]; int max, min, temp; for(i=0;i<len;i++)  { printf("输入第%d个数:",i+1); scanf("%d", &a[i]);//加上取地址运算符&  } max = a[0]; min = a[0]; for(i=1; i<len; ++i) { if(max < a[i]) { temp = max; max = a[i]; a[i] = temp; } if(min > a[i]) { temp = min; min = a[i]; a[i] = temp; } } printf("最大数:%d,",max); printf("最小数:%d\n",min); return 0; }
打开App,查看更多内容
随时随地看视频慕课网APP