1樓:匿名使用者
自己做strcmp和strcpy子函式,或者把能實現相同功能的子函式模組用for迴圈來處理
strcmp子函式的功能是比較str1和str1字串的每個字元
用乙個for迴圈來實現這個功能的
功能實現,模擬著函式
void mystrcmp(char *str1,char *str2)
strcpy拷貝子函式也是用乙個for迴圈來實現的
void mystrcpy(char *str1,char *str2)
你完全可以把這個功能模組用著相應的位置
for(i=0;istr[j][k]) //也可以用指標,大了就交換,小了或等於不交換
交換**
}l=min(strlen(str[i]),strlen(str[j]));
這一句完全可以用l=strlen(str[i])>strlen(str[j])?strlen(str[i]):strlen(str[j]);
不用子函式,或者乙個if--else來解決
temp=str[j];
str[j]=str[i];
str[i]=temp;
這是交換的**,字串不能這麼交換,可以用strcpy拷貝函式,或者字元乙個乙個的交換
不能整個字串用=來賦值
2樓:上帝來自地球
這樣修改就沒問題了,不明白可以追問!
#include
#include
int min(int a,int b)
int main()
;int i,j,k=0,l,n;
char *temp;
scanf("%d",&n);
for(i=0;i*(str[j+1]+k))} }}
}for(i=0;i printf("%s\n",str[i]); return 0;} c語言中如何通過函式按字典順序排列輸入的十個字串 3樓:袁世平 如果使用的是氣泡排序,那麼和整數排序唯一的不同就是這個部分: if(a[j]>a[j+1]) swap(a[j],a[j+1]); 那麼在字串排序的時候,需要用到乙個庫函式叫strcmp(char a,char b); 這個函式在庫中[或者c語言中在庫中] 這個函式的用法就是輸入字串a,b,判斷a,b的字典序大小. 若a的字典序小返回負值 若a的字典序和b相同返回0 若a的字典序大於b的字典序返回正數 然後你將上面冒泡的部分改一下的話就是: if(strcmp(a[j],a[j+1])>0)swap(a[j],a[j+1]); 這樣的話就可以實現氣泡排序了. 如果你使用的是系統快排的話,你可以用string,也可以定義乙個結構體 struct nodes[12]; int main() 這樣的話也是可以實現的. 4樓:匿名使用者 不是字典序吧……是ascii碼的大小,大小寫會有問題 c語言中如何將10個字串進行排序 5樓:問明 #include #include int main() int j,k,i,t,n; char s[10][10],b[10][10]; for(i=0;i<10;i++) scanf("%s",s[i]); n=strlen(s[1]); k=0; for(i=0;i<9;i++) for(j=0;j<9-i;j++) if(strcmp(s[j],s[j+1])>0)for(k=0;kb[j][k]=s[j][k]; for(k=0;ks[j][k]=s[j+1][k]; for(k=0;ks[j+1][k]=b[j][k]; for(i=0;i<10;i++) printf("%s ",s[i]); return 0; 執行效果: 6樓:亥夏侯戎 c語言中如何將十個字串進行排序?這十個。這十個字元分別是愛與畢西諦艾艾夫記。 7樓:風若遠去何人留 一、演算法設計: 1、輸入10個字串; 2、任選一種排序演算法對字串排序,比較時需要使用strcmp, 複製時需要使用strcpy。 3、輸出排序後的結果。 二、演算法優化: 字串比較必須使用strcmp,這一點無法優化。 但每次將字串整體複製,交換值,效率偏低,所以可以使用字元指標陣列儲存每個字串的位址,排序時交換指標即可。 另外,輸入時可以同步完成排序操作。 #include #include int main() //迴圈結束後,p中就是排序好的10個字串。 for(i = 0; i < 10; i ++)//輸出結果。 return 0;} 8樓:mrs_小可愛 不好意思,你說的這個我不是很了解呢,沒能幫到你,希望您可以得到滿意的答覆,祝您生活愉快,謝謝! c語言程式題 從鍵盤接收5個字串,然後按字典順序排序後輸出 程式如下,幫幫改下吧 9樓:聽不清啊 已經修改完成: #include #include main() { char * str[5], strl[5][80]; //定義字元指標陣列,用於指向多個字串 char *temp; int i, j; for (i = 0; i < 5; i++){ gets(strl[i]); //從鍵盤上接收多個字串str[i] = strl[i]; //讓指標陣列中的字串指標指向輸入的串 for (i = 0; i < 4; i++)for (j = i + 1; j < 5; j++){ if (strcmp(str[i], str[j]) > 0){ temp = str[i]; str[i] = str[j]; str[j] = temp; for (i = 0; i < 5; i++)printf("\n%s\n", str[i]); c語言: 輸入10個字串,用選擇排序法對十個字串按大到小排序並輸出 1 關係運算子中是判斷邏輯,而不是正負 2 邏輯只有真假,是0即假,非0即真 3 按你所說負數當然是真咯!如果滿意,請採納!關係運算中之區分零和非零,負數是非零 非零即為真,所以負數也是真,為1 0001 取反1110 符號位為1,取反 1為 1010 轉化成10進製為 2正數的原碼,補碼,反碼都版... 吉他c和弦總共有兩種按法,分為簡化按法和不簡化按法 1 簡化指法 用食指按住吉他的第2弦的第1品,然後用中指按第4弦的第2品,無名指按第5弦的第3品,三個手指按緊,不要碰到一品 三品 還有六品琴弦,此指法應用較廣,示意圖如下所示 2 不簡化指法 食指按結他的第2弦的第1品,然後中指按第4弦的第2品,... 1和8都是int型,且都是正整數,記憶體中原碼形式儲存 1的原碼是00000000 00000000 00000000 0000001 8的原碼是00000000 00000000 00000000 0001000 按位異或,顧名思義是對應的二進位制位計算,口訣相同0,相異為1.就是對應的二進位制位...c語言關係運算中負數是按0還是按
吉他c和弦怎麼按結他C和弦怎麼按
c語言中18怎麼算?是按位異或運算子