到底错在哪里了。。。。求教
#include <stdio.h>
#include <string.h>
void main()
{
char temp,str[10];
int a,b=0,c=0;
clrscr();
puts("input string : \n");
gets(str);
temp=str[0];
for(a=0;a<strlen(str);a++)
{
for(;b<strlen(str);b++)
{
if(temp<str[b])
{
temp=str[b];
c=b;
}
}
str[b]=str[a];
str[a]=temp;
b=a+1;
}
puts(str);
}
目的是输入一个字符串,按照ASCII码升序排列。。
[解决办法]
#include <stdio.h>#include <string.h>void main(){char temp,str[10],c; int a,b=0;clrscr();puts("input string : \n");gets(str);for(a=0;a<strlen(str);a++){C=str[a];for(b=a+1;b<strlen(str);b++){if(c<str[b]){temp=str[b];str[b]=str[a];str[a]=temp;}}}puts(str);}
[解决办法]
#include <stdio.h>#include <string.h>#include <conio.h>void main(){ char temp,str[10]; int a,b=0,c=0; clrscr(); puts("input string : \n"); gets(str); temp=str[0]; for(a=0;a<strlen(str);a++) { for(b=a+1;b<strlen(str)-1;b++) { ///如果成立,则交换两个数 if(str[a]<str[b+1]) //应该是str[a]<str[b]吧 { temp=str[a]; str[a] = str[b+1]; str[b+1] = temp; } } } puts(str);}