1、數(shù)組排序可以不用指針。你把數(shù)組定義成全局變量,比如說(shuō)a[10001];然后調(diào)用我給你的快排程序就行了,這個(gè)程序可以背下來(lái),很有用的。
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、小程序定制開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶(hù)創(chuàng)新互聯(lián)還提供了豐臺(tái)免費(fèi)建站歡迎大家使用!
2、以下給出求n個(gè)數(shù)的中間數(shù)的C語(yǔ)言代碼:includestdio.hvoid main(){int n,i,j,t;int a[1000];scanf(%d,&n); //輸入n。for(i=0;in;i++)scanf(%d,&a[i]); //輸入n個(gè)數(shù)。
3、A.length是數(shù)組data的長(zhǎng)度,等于5,B.length=3,mid=A.length+B.length/2=5+3/2=6 查找中位數(shù)if (k = mid )把mid 的值賦給k,此時(shí)k =6就執(zhí)行return A.data[i ]整個(gè)函數(shù)調(diào)用就結(jié)束。
4、把各個(gè)數(shù)放在數(shù)組中,然后進(jìn)行排序(升序、降序均可),根據(jù)下標(biāo)就可取得中間值。
1、思路:需要解決兩個(gè)問(wèn)題,一是判斷一個(gè)數(shù)是否是素?cái)?shù),而是求一個(gè)數(shù)顛倒后的數(shù),可以通過(guò)兩個(gè)函數(shù)分別實(shí)現(xiàn)。
2、首先把排序前后的數(shù)組打印出來(lái),檢查排序是否正確,然后才談得上中位數(shù)是否正確。
3、排好序之后找中位數(shù)就好辦了。至于眾數(shù),我覺(jué)得最好的方法是用bfs。但這個(gè)對(duì)你來(lái)說(shuō)難度有點(diǎn)大,我就給你寫(xiě)一個(gè)hash表吧。
printf 無(wú)中間數(shù) 如果是取大小位于中間的一個(gè)數(shù)。
第三個(gè)IF表示:(如果執(zhí)行IF,生成的新序列)頭尾兩個(gè)數(shù)字比較,小的排前面;此處9不滿足條件,不執(zhí)行IF 語(yǔ)句。
那你就每三個(gè)求一下唄。至于中間值,你就看文件里總共有多少個(gè)數(shù)。如果是奇數(shù),比如999個(gè),那就是除以2向上取整,那個(gè)數(shù)就是中間值。如果是偶數(shù)就除以2,和除以2加一,這兩個(gè)數(shù)的平均值就是中間值。
只有3個(gè)數(shù),窮舉比較實(shí)現(xiàn)很方便,所以在輸入3個(gè)數(shù)后直接利用if...else if結(jié)構(gòu)比較大小取中值輸出即可。
你的程序邏輯性有點(diǎn)亂,第一個(gè)if語(yǔ)句把前三個(gè)數(shù)的較小數(shù)變?yōu)橄聵?biāo)為二的數(shù),第二個(gè)又把后三個(gè)數(shù)的較大數(shù)放到二,這樣并不能保證【2】就是中間數(shù)。