编程,输入两个字符串s1和s2,将它们合并为一个字符串,合并后的字符串按其ASCII码值从小到大进行排序并输出

#include<stdio.h>#include<stdlib.h>#include<string.h>intmain(){inti,j,t,n,p;charstr1[... #include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int i,j,t,n,p;
char str1[200],str2[100];
gets(str1);
gets(str2);
strcat(str1,str2);
n=strlen(str1);
for(i=0;i<n-1;i++) /*选择排序法*/
{ p=i;
for(j=i+1;j<n;j++)
if(str1[p]>str1[j]);
p=j;
if(p!=i)
{
t=str1[p];
str1[p]=str1[i];
str1[i]=t;
}
}
puts(str1);
return 0;
}

求大神指导,这个C语言程序错在哪?
没结果输出!
好了,知道了.....
一发出就看出来了。
展开
 我来答
geniepengsz
推荐于2018-03-04 · TA获得超过2万个赞
知道大有可为答主
回答量:1.2万
采纳率:97%
帮助的人:2329万
展开全部
调试了一下,这一句有问题:
if(str1[p]>str1[j]); //这里多了分号
p=j; //导致这一句每一循环都被执行
改为:
if(str1[p]>str1[j])
p=j;
即可
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式