一直按升序排好的字符串a,将字符串s中的每个字符按升序的规则插到数组a中,字符串s从键盘输入

用数组

#include<stdio.h>
int main(void)
{
int n,i,j,k;
char a[80],s[80];
printf("输入数组a:");
for(k=0;(a[k]=getchar())!='\n';k++);
a[k]=0;
printf("输入数组s:");
scanf("%s",s);
for(j=0;s[j]!=0;j++){
for(i=0;i<k;i++){
if(s[j]>a[i])continue;
for(n=k+1;n>i;n--)
a[n]=a[n-1];
a[i]=s[j];
k=k+1;
break;
}
if(i==k){a[k+1]=a[k];a[k]=s[j];k=k+1;}
}
printf("%s\n",a);
return 0;
}
你看看 有错跟我说一下应该是没错的。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-28
先输入s;再new一个字符数组用for双重循环,外层循环把a的字符挨个传入新数组,每传一个就用内层循环在s中找合适的字符传到新数组中,循环结束时,那个新数组应该就是你需要的结果了!
相似回答