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)解決這類問題還是排序來的直接點 程式本身並沒有錯,以空格鍵跳出迴圈是不可能的。因為在輸入數值時,scanf會自動忽略空格。你要輸入不確定個數的數值,可以定一個正常情況下不出現的數作為退出標記。比如正常都是非負數時,可以用負數作為退出條件。把while 1 改寫為while a 0 或while a 99999 while 1 這段... 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 ... 第一個程式中,multiply函式中定義的c陣列和main函式的c陣列不是同一個,multiply函式執行完後,裡面定義的c陣列已經銷燬,在這個函式執行的過程中,main中的c陣列沒有被做任何操作,若想讓程式正確執行,應把c定義成一個全域性變數,或在multiply中傳入c這個引數 還有一個問題是m...C語言初學,C語言初學者?
c語言初學者請教大家,C語言初學者請教大家
我是C語言的初學者,寫了倆個程式,可都執行錯誤。希望大家幫忙