C語言糾錯

時間 2022-03-24 17:50:02

1樓:風雷九州

將樓主的**一下就知道了

第一層t=min2(w

第二層t=w

上面表示式的計算順序是

1、先計算w

2、再計算(w

3、((w

只寫這三層吧,執行順序並不是想象的那樣。巨集不是自己加括號,需要我們自己來加。

修改一下

#define min2(x,y) (x

#define min4(w,x,y,z) min2(min2(w,x),min2(y,z))

這個樣子的話,就是

t=min2((w

t=(w

2樓:山水阿銳

您好,是這樣的:

#include

void sort(int *,int); //函式宣告時型別保持一致

int main()

,i,n;

printf("輸入要輸入資料的個數:\n");

scanf("%d",&n);

printf("輸入陣列中元素:\n");

for(i=0;i

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

printf("輸出排列好的陣列:\n");

sort (a,n);

for(i=0;i

printf("%5d",a[i]);

printf("\n");

}void sort(int a,int n)}}}呼叫時不用加入函式返回值型別,順便除錯了一下程式,你是打算倒序排列後輸出結果,在sort函式裡面if 判斷語句成立時應該加大括號,因為下面的3句都是if 需要執行的,還有for 也要加大括號,只有當for 、if 的語句體只有一句時才能省略大括號。

c語言程式糾錯

樓上兩位說的對,不過你們估計沒有具體的編譯過,其實還有兩個小問題 1.x b 2 a sqrt b b 4 a c 2 a y b 2 a sqrt b b 4 a c 2 a 這兩句用到了sqrt 函式,它的原型為double sqrt double x 即輸入輸出都是雙精度,所以x,y,a,b,...

C語言基本問題糾錯

樓主你好,你的問題主要出在 a int a和printf d n a 這兩句。因為在前面你已經宣告a為float型別了,雖然進行a int a強制型別轉換之後得到了一個整數,但這並沒有改變a的資料型別,所以不能使用 d輸出,建議宣告一個int變數,將 int a賦值給它。a int a 下面是對這句...

C語言問題,C語言問題C語言問題

選a首先,空格也是一種字元,b d選項分別把空格賦給了c1,c1 其次,c選項不完整,排除 不僅a這樣,10a20b也是可以的。 聽不清啊 答案a 10a 20b cr 是正確的。因為scanf d c 時,會忽略數字前面的空格,遇到非數字字元就會結束讀取 非數字字元會留待下一次讀取,即被後面的 c...