C語言問題requires l value

2022-08-05 13:57:09 字數 762 閱讀 4673

1樓:脫豆言蓄

1你define的n和下面變數重複了

2定義的陣列a[n]

在n還沒有定義值的時候就定義了

應該先輸入n然後定義a[n]

#include "stdio.h"

//#define n 10000

int main()

pfirst=&a[0];

psecond=&a[0];

for(i=1;i

if(*psecond>a[i])

}printf("%d %d",*pfirst,*psecond);

printf("\n");

return 0;}

2樓:漢安寒厲豪

基本是對的,主要是define部分存在問題// 如果define n

#define n 10000

// 這樣會在預編譯階段,把**中所有的n全部替換為10000,所以在輸入語句

scanf("%d", &n);

// **會變成:

scanf("%d", &10000);

// 顯然是非法的,所以報錯了。

// 要解決的話,可以改成:

#define n 10000 // 這裡修改了的話,定義陣列的部分也要改成n哈~

// 或者是修改底下的變數 n 的名字變成其他的// 另外,輸入三個數的部分,不需要加空格哈~會自動過濾掉的。用下面這句就好了哈~

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