C语言冒泡排序,输入字母或数字比较大小,输出结果是字母由大到小排在前,数字由小到大排在后

具体的C语言冒泡排序程序编码

/*
排序前 : 90dhnsuayA34810
降排序后 : yusnhdaA9843100
二次排序后 : yusnhdaA0013489
Press any key to continue
*/
#include <stdio.h>
#include <stdlib.h>
void SortD(char s[]) { // 从大到小排序
int i,j;
char ch;
for(i = 0; s[i + 1]; ++i) {
for(j = i + 1; s[j]; ++j) {
if(s[i] < s[j]) {
ch = s[i];
s[i] = s[j];
s[j] = ch;
}
}
}
}

void SortI(char s[]) { // 从小到大排序
int i,j;
char ch;
for(i = 0; s[i + 1]; ++i) {
for(j = i + 1; s[j]; ++j) {
if(s[i] > s[j]) {
ch = s[i];
s[i] = s[j];
s[j] = ch;
}
}
}
}
int main(){
char s[] = "90dhnsuayA34810";
int i,pos = -1;
printf("排序前 : %s\n",s);
SortD(s);
printf("降排序后 : %s\n",s);
for(i = 0; s[i]; ++i) {
if(s[i] >= '0' && s[i] <= '9') {
pos = i;
break;
}
}
if(pos != -1) {
SortI(&s[pos]);
printf("二次排序后 : %s\n",s);
}
return 0;}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-06
用数组储存你输入的字母或数字,在单纯的字母排序和数字排序之前先对字符进行判断,将字母和数字分开。这个程序很简单。
第2个回答  2013-03-06
哪本c语言的书上没有。。。
相似回答