1樓:篤煥支苑博
測試稿簡通過的:
輸入陣列元素的個數(<100):6
輸入陣列元素:12
第二大數是:46
演算法是:逐個掃瞄,與最大值比較(最大值初值為第乙個元素),若陣列元素比最大值還大,則將最大值賦給第二大值,陣列元素取代最大值。
然後輸出第二大值。希望對你有所幫助。
#include
voidmain()
intarray[100];
inti,num;
intmax,secmax;
printf("輸入陣列元段激素的個鍵燃褲數(<100):"
scanf("%d",&num);
printf("輸入陣列元素:")
for(i=0;imax)
secmax=max;//原最大值賦予第二大值。
max=array[i];/更新最大值。
printf("第二大的數是:%d",secmax);
2樓:有禎張廖芃芃
不用排序也可以的。
#include
voidmain()
intx=0,y=0,i,k;//初始化x(儲存最大值)和y(儲存第二大值),理論上應該初始化為最小值,這裡只是作示例,就初始化為0
inta=作輸入的數,執行後應該輸出為6
for(i=0;i<5;i++)將陣列裡的最大值賦給xif(xy)
y=a[i];
printf("第二大值頌御歷是%d"拆飢,y);/輸出。
原來我野搜的思路和樓上一樣。
c語言中求解兩個整數的值
3樓:網友
第乙個得3,因為a++就是在此次語句執行完畢以後進行加,而第二個結果得10
分析如下:第乙個++a執行完後a=2,然後執行第二個++a,結果a=3,然後執行(++a)+(a)這個累加,結果得到3+3=6,然後執行最後乙個++a,結果為4,然後6+4結果得10
希望你能明白。
補充:我回答得很清楚了啊,就是因為先要兩個++a執行,然後再進行第一次的相加,然後再次++a,然後再累加,得到的結果為3+3+4=10;這個++a連加的**在軟工中是覺得不能出現的,只能拿來考試罷了。
4樓:姚兄
首先,a++表示使用後自增1,而++a表示使用前自增1所以 b=1+1+1=3
c=2+2+2=6明白沒。
5樓:
int b = (a++)a++)a++)得出b=3,a=4;因為a++是自增字尾,在「當前表示式中」使用a當前值以後再將a的值增1,所以在b=1+1+1後,a自增3次,得a=4;
int c = (+a) +a) +a); 得出c=21,a=7;++a是自增字首,在「當前表示式中」先將a值增1後再使用a值,所以a先自增3次,然後得出a=7,然後b=7+7+7;
請注意打上引號的當前表示式。
在vc++ 中編譯執行結果為a=7,b=3,c=19;
在visual studio 2005中編譯執行結果為a=7,b=3,c=21;
造成差異的原因應該是vc++ 版本中c++對自增字首實現bug所致。
6樓:青蛙上半年
a++是先執行運算然後自增1,++a是先自增1然後執行運算。個人認為可以化為int a=1;int c;int b=a+a+a;a++;a++;a++;a;c=a;++a;c=c+a;++a;c=c+a; b=3,c=18
7樓:網友
一句話,弄懂a++和++a很重要,再深入的話就很無聊,沒有人會++寫一堆的,這樣的**別人怎麼看,不能看的**有什麼用。可維護性有時比**功能本身更重要!
C語言求解釋!c語言中!表示什麼運算?
第乙個函式 inc int a 將a的值增加後返回 後的值,注意傳進來的實參自身不會加.這裡只是形參增加.第二個函式multi,將a,b指向的值相乘給c,並返回這個乘積,注意這裡c指向的內容會被改寫。然後是兩句typedef 是定義了兩個新型別func和func,兩個都是函式指標,指向用來定義乙個函...
C語言求兩個整數中的較大者,C語言中求兩個整數中的較大者。
int max int x,int y 這個函式錯的也太離譜了 如果x比y大就返回y 如果x不比y大就返回z的預設值 c語言中求兩個整數中的較大者。1 首先新建一個工程和一個.c檔案。2 然後需要按照圖示 輸入標頭檔案。3 然後 需要按照圖示 輸入主函式。4 然後需要按照圖示 定義變數型別。5 然後...
c語言中for的用法,C語言語言中FOR的用法
你這些程式肯定是某些二流教科書上,根本就是誤導人。for後面語句 需要迴圈的 不管是一句還是多句都要加!因為加 比不加 讓程式表述得更加清楚!printf d x,y 不會報錯,printf是一個多引數的c函式,編譯的時候,printf函式本身並不知道 引號 中需要多少個引數,它只是按照順序從堆疊上...