1樓:匿名使用者
將字元排序就行了哇,氣泡排序。
比如將family[0].type[20]排序:
int i,j;
char tmp;
int len=sizeof(family[0].type)/sizeof(char);
for(i=0;ifamily[0].type[j+1])
tmp=family[0].type[j+1];
family[0].type[j+1]=family[0].type[j];
family[0].type[j]=tmp;
for(i=0;iprintf("%c",family[0].type[i]);
如果以上出現「%」符號,那是為何防止繫好睜統誤識我把半形符號寫成全形符號了,注意改回來。
親愛的慎襪圓lz,如果我的能夠幫你解決問題,或是對你有幫助,或是對你今後的寬塌發展造成積極的影響,那麼請您我的吧,
2樓:匿名使用者
裡有個中凳字元比歲培巧較函乎鍵數。
加個迴圈。相同型別比較然後輸出就是了。
c語言考試。問陣列,常見的陣列排序演算法有那幾種?選擇乙個描述過程。
3樓:網友
有插入排序:直接插入排序、折半插入排序、希爾排序;交換排序:氣泡排序、快速排序;選擇排序:簡單選擇排序、堆排序;歸併排序;基數排序。
常用氣泡排序的基本概念是:依次比較相鄰的兩個數,將小數放在前面,大數放在後面(陣列由小到大排序)。即首先比較第1個和第2個數,將小數放前,大數放後。
然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後,此時第一趟結束,在最後的數必是所有數中的最大數。重複以上過程,仍從第一對數開始比較(因為可能由於第2個數和第3個數的交換,使得第1個數不再小於第2個數),將小數放前,大數放後,一直比較到最大數前的一對相鄰數,將小數放前,大數放後,第二趟結束,在倒數第二個數中得到乙個新的最大數。如此下去,直至最終完成排序。
由於在排序過程中總是小數往前放,大數往後放,相當於氣泡往上公升,所以稱作氣泡排序。
用二重迴圈實現,外迴圈變數設為i,內迴圈變數設為j。外迴圈重複9次,內迴圈依次重複9,8,..1次。
每次進行比較的兩個元素都是與內迴圈j有關的,它們可以分別用a[j]和a[j+1]標識,i的值依次為1,2,..9,對於每乙個i, j的值依次為1,2,..10-i。
**:for(i=0; ii; j--)內迴圈:進行每趟比較*/
if(data[j]
4樓:go華仔來了 常見的有冒泡、選擇、插入法。其中冒泡最常用,列如:n個數字排序,外層迴圈n-1次,內層迴圈為迴圈變數,明白不? c語言陣列a用選擇排序 5樓:貿秀榮濯媚 lz你的輸出函式用錯了,你的列印結果是記憶體位址,看了你的排序函式沒問題,只要修改下printf函式就ok了,這樣寫printf("%d,a[i]); 6樓: #include//冒泡法排序。 void main() int i,j,t; for(j=0;j<10;j++) for(i=0;i<10-1-j;i++)if(a[i]>a[i+1]) /* 由小到大,由大到小時改為< */ for(i=0;i<10;i++) printf("%d ",a[i]); 可以採用兩種方式 1 按元素賦值 遍歷一維陣列,並將每個元素賦值到二維 內陣列的對應元素上容。或者遍歷二維陣列,將每個元素賦值為一維陣列對應值上。優點為操作靈活,可以按照需要任意賦值。2 當一維陣列和二維陣列型別相同,而且賦值順序與一維陣列中的儲存順序完全相同時,可以用memcpy的方式,直接一次性... 利用2層for迴圈,很容易的。你 string a new string int len 加入這個是你的目標2維陣列array i j 那就這樣做了 for int length 0,length 二維陣列的列數怎麼能不相等?除非你這個陣列是指標陣列,第一維度裡的變數儲存的是指標,指標指向的陣列就是... 陣列型別可以自定義巨集 比如 int 定義成 1,char 定義成 2 define typeint 1 長度,是多少就傳多少唄。ps 完全不理解你為什麼要把陣列型別和長度傳成引數幹嘛用 function t t,int length 給陣列賦值的時候就可計算出陣列的長度.你要實現什麼功能,如果說僅...C語言中,怎樣將一維陣列中的數,賦給二維陣列
如何將二維陣列裡的字元傳到一維陣列中??C
在c中如何將陣列型別和長度作為引數傳入