比較十個數的大小

2021-06-27 20:42:35 字數 868 閱讀 9091

#includeint main()

; int i;

int max = 0;

for( i = 0;i < sizeof(arr)/sizeof(arr[0]);i++)

printf("%d\n",max);

return 0;

}

sizeof(arr)是整個陣列所佔的位元組數,sizeof(arr[0])是乙個元素所佔的位元組數,他倆一除就是整個陣列的長度。計算動態的計算陣列的大小。

下面用指標的方法實現:

#includeint max (int * parr)

return max;

}int main()

; printf("%d\n",max (arr));

return 0;

}

其實這個程式是有問題的,因為陣列名作為函式引數的時候他會降級,變成陣列首元素的位址,sizeof(parr)其實不是40而是4,sizeof(parr[0])也是4,他們一除就出現問題了。所以就出現問題了,我們可以進行下面的改進

#includeint max (int * parr,int len)

return max;

}int main()

; int ret = max(arr,sizeof(arr)/sizeof(arr[0]));

printf("%d\n",ret);

return 0;

}

這也是引數的妙處,想要什麼東西可以通過引數傳進去。如果沒有引數這個問題就徹底解決不了了。在主函式裡有乙個臨時變數想放在函式裡用就以函式引數的形式傳遞進去

十個數排序

對10個數進行排序 include intmain int i,j,temp for i 1 i 10 i printf 輸出排好的數列是 n for i 1 i 10 i include define size 10 intmain 十個數的無序數列 int i,j char t printf 此...

根據上排十個數,算出下排十個數

以下為一給出的數學解法,還沒細看正確與否,先記下,留待後用 給你10分鐘時間,根據上排給出十個數,在其下排填出對應的十個數 要求下排每個數都是先前上排那十個數在下排出現的次數。上排的十個數如下 0,1,2,3,4,5,6,7,8,9 舉乙個例子,數值 0,1,2,3,4,5,6,7,8,9 分配 6...

三個數比較大小

比較大小 輸入 3 個整數,按從小到大的順序輸出。試編寫相應程式。怎麼比較大小,常見的演算法有冒泡 選擇 排序 二分查詢法,這些我們這裡都不說,三個數比較大小用不到演算法,用什麼寫呢?if else或者if分析 就是找到三個數中最小的數,最比較另外兩個數 我第一次寫這個題,用的是if else寫的,...