选择排序发
#include <stdio.h>#include <string.h>
int main()
{
char a, b, str1, str2;
char temp;
int i, j, n, min;
gets(a);
printf("string a :%s\n", a);
gets(b);
printf("string b :%s\n", b);
for(i=0; a; i++)
{
str1 = a;
}
for(j = 0; b; j++, i++)
{
str1 = b;
}
str1 = '\0';
printf("原来的字符串:%s\n", str1);
strcpy(str2, str1);
strlwr(str2);
n = strlen(str2);
for(i = 0; i < n-1; i++)
{
min = i;
for(j = i+1; j < n; j++)
{
if(str2 > str2)
{
min = j;
}
}
if(i != min)
{
temp = str1;
str1 = str1;
str1 = temp;
}
}
printf("改变顺序后的字符串:%s\n", str1);
return 0;
}
我先要输出的结果是AaBbCc按照这样的排序结果输出的,但是程序输出的结果跟我逾期的不一样,又找不出哪里有问题,求大神解答 那是因为小写字母的ASCII码小,大写字母的ASCII码大
你只能自己定义一个数组,排序那个数组 本帖最后由 小剑剑 于 2016-6-19 12:56 编辑
比较是用的是str2,输出str1他str1交换了而str2没交换,后面的比较都错了
改成 if(I!=min)
{
temp=str1;
str1=str;
str1=temp;
temp=str2;
str2=str;
str2=temp;
}
还有这样子可能出现大小写排序不一致的情况例如排序成这样aaAAaa 你没看清楚吧,str2是把str1全部换成了小写了,不这样做的话,你的b肯定会在C后面的,str2我只是用来判断他的字母顺序用而已,我要改变的就是str1之后把改变后的输出出来 小剑剑 发表于 2016-6-19 12:54
比较是用的是str2,输出str1他str1交换了而str2没交换,后面的比较都错了
改成
你没看清楚吧,str2是把str1全部换成了小写了,不这样做的话,你的b肯定会在C后面的,str2我只是用来判断他的字母顺序用而已,我要改变的就是str1之后把改变后的输出出来 小剑剑 发表于 2016-6-19 12:54
比较是用的是str2,输出str1他str1交换了而str2没交换,后面的比较都错了
改成
我知道什么意思了。
页:
[1]