#include<stdio.h>
#include<string.h>
#define N 10
void main()
{
char a[N];
int i,t,j,l;
gets(a);
for(j=0;j<strlen(a);j++)
for(i=0;i<strlen(a)-1;i++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
for(i=0;i<=strlen(a);i++)
printf("%c",a[i]);
}这是比较一个字符串中每个元素大小,并且由小到大输出的程序,按理说只有用冒泡法才能写出,但是用冒泡法写出来后结果不对··最后就改成这样了,请高手帮我解释下额!谢谢
大家帮我看个程序
答案:3 悬赏:30 手机版
解决时间 2021-05-09 02:49
- 提问者网友:疯子也有疯子的情调
- 2021-05-08 02:27
最佳答案
- 五星知识达人网友:逃夭
- 2021-05-08 02:55
没看懂你中间两个for循环要干什么,我给你用冒泡法重写了,排序方法不止冒泡法一种,你可以尝试用别的来试一试:
#include<stdio.h>
#include<string.h>
#define N 10
void main()
{
char a[N];
int i,t,j,l;
gets(a);
for(j=strlen(a)-1;j>=0;j--)
for(i=0;i<j;i++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
for(i=0;i<strlen(a);i++)
printf("%c",a[i]);
}
全部回答
- 1楼网友:白昼之月
- 2021-05-08 04:41
把
if(a[i]>a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; }
改成:
if(a[j]>a[i]) { t=a[j]; a[j]=a[i]; a[i]=t; }
- 2楼网友:过活
- 2021-05-08 03:45
你的变量J没有用上
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯