-
if(strcmp(*n[i],*n[j]))temp=n[i]; n[i]=n[j]; n[j]=temp;
這就是問題所在。
strcmp 返回值是大小,但使用 if(strcmp(*n[i],*n[j]))。
只會檢查是否等於 0,如果不等於 0,則稍後執行。
所以它應該是 if(strcmp(*n[i],*n[j])<0)
strcmp太長了忘不了,如果不行就改“0試”,不知道是“還是<
-
問題在於,在你的 ex() 函式中,排序演算法用來傳遞位址,而不是特定值,所以跳出 ex() 函式後,所有本地操作都是無效的。
char *temp 到 char temp;
temp=n[i]; n[i]=n[j]; n[j]=temp;更改為 temp=*n[i]; n[i]=*n[j]; n[j]=temp;應該沒問題。
-
具體步驟如下:1定義乙個由五個字串組成的陣列,用於儲存需要排序的字串。
2.使用字串處理程式 strcmp() 比較兩個字串的大小。 如果字串 1 小於字串 2,則返回值為負整數; 如果字串 1 大於字串 2,則返回值為正整數; 如果兩個字串相等,則返回值為 建立巢狀迴圈,比較兩個字串中每個字串的大小,並將字串從小到大排序。
4.輸出 5 個排序字串。 下面是乙個實現示例:
c#include #include int main() printf("排序後的字串為:");for (i = 0; i < 5; +i) puts(str[i]);輸出五串後銷毀後,褲子引線分揀返回0; 請注意,gets() 和 puts() 函式分別用於匯入和輸出字串。 這是因為 gets() 可以輸入包含空格的字串,而 puts() 會自動在輸出字串的末尾新增換行符。
同樣是純拾取,使用 strcmp() 函式進行比較時,字串更大。
請注意將其放在 if 語句中,以滿足按英文字元順序從小到大排序的要求。 希望這個答案對您有所幫助。 如果您仍有任何疑問或需要進一步的幫助,請隨時繼續諮詢洞穴。
你可以打敗完整的**。
整隻鴨子。 你整理一下。
-
看看這個**。
希望對你有所幫助。
-
按字典順序輸出一組字串的來源如下:
#include
int main ()
char name[40] ;宣告乙個名為 name 的儲存空間,陣列中的元素數為 40
printf("what is your name ?");轉換說明字元 n 換行符。
scanf("%s,name");使用表示輸入字串的轉換修飾符 %s 輸入字串。
printf("hello,%s.",name);輸出字串。
return 0;
<>三個字前面沒有“bud”字樣的字詞。
簡體部首: 艹 , 外筆畫: 4 , 總筆畫: 7 定義. 植物的幼蟲可以發育成莖、葉或花的一部分:頭髮。 嫩。 年輕。 >>>More