C語言幫忙改個錯,我初學者

時間 2022-06-24 08:30:02

1樓:陳宗權

可以的。

#include

void max(int *q,int d);

void main()

*p=a[0];

for(i=1;i

*q=d;*/

*q=(a[0]==*p?a[1]:a[0]);//確保q指向的不是最大元素

for(i=0;i

printf("最大數為%d\n",*p);

printf("次最大數為%d\n",*q);

}void max(int *q,int d)//多了個分號

2樓:匿名使用者

解決問題前應該理清思路,再寫**,這樣就不會越寫越亂了,求最大值 和次大值,如果用函式呼叫的方法,就必須用指標引數傳遞方式了,這個函式實現對資料進行降序排序然後返回就ok了

3樓:幻湖葬月

你的水平也太爛了!向樓上說的,先理清思路在做。這麼簡單的題目冒兩次泡就行了哥!

老是說你對指標理解的很差。

4樓:霧明冰清

用函式的示例

#include

void max(int *q,int d);

void main()

else

nextmax = a[index];

}else

continue;}}

5樓:匿名使用者

#include

void max(int *q,int d);

void main()

p=&a[0];

for(i=1;i

for(i=0;i

q=&d;

for(i=0;i

printf("最大數為%d\n",*p);

printf("次最大數為%d\n",*q);

}void max(int *q,int d)解決這類問題還是排序來的直接點

C語言初學,C語言初學者?

程式本身並沒有錯,以空格鍵跳出迴圈是不可能的。因為在輸入數值時,scanf會自動忽略空格。你要輸入不確定個數的數值,可以定一個正常情況下不出現的數作為退出標記。比如正常都是非負數時,可以用負數作為退出條件。把while 1 改寫為while a 0 或while a 99999 while 1 這段...

c語言初學者請教大家,C語言初學者請教大家

while a 14 的意思是a賦值為14,每次執行到這兒的時候,a的值就是4了,由於14為真,所以迴圈下去 因些最後停止迴圈是因為多次後,y的值大於了50 整個過程中,a,y的值如下 a 10,y 0 a 12,y 12 a 14,a 16,y y a 28a 14,a 16,y y a 44a ...

我是C語言的初學者,寫了倆個程式,可都執行錯誤。希望大家幫忙

第一個程式中,multiply函式中定義的c陣列和main函式的c陣列不是同一個,multiply函式執行完後,裡面定義的c陣列已經銷燬,在這個函式執行的過程中,main中的c陣列沒有被做任何操作,若想讓程式正確執行,應把c定義成一個全域性變數,或在multiply中傳入c這個引數 還有一個問題是m...