九度题目1471:合并符串 给定两个字符串S1和S2,合并成一个新的字符串S。
给定两个字符串S1和S2,合并成一个新的字符串S。合并规则为,S1的第一个字符为S的第一个字符,将S2的最后一个字符作为S的第二个字符;将S1的第二个字符作为S的第三个字...
给定两个字符串S1和S2,合并成一个新的字符串S。
合并规则为,S1的第一个字符为S的第一个字符,将S2的最后一个字符作为S的第二个字符;
将S1的第二个字符作为S的第三个字符,将S2的倒数第二个字符作为S的第四个字符,以此类推。
输入:
包含多组测试数据,每组测试数据包含两行,代表长度相等的两个字符串S1和S2(仅由小写字母组成,长度不超过100)。
输出:
合并后的新字符串S
样例输入:
abc
def
样例输出:
afbecd
我的代码:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
int main()
{
char s1[100]={0},s2[100]={0},s3[200]={0};
int len,i,j=0;
while(scanf("%s %s",s1,s2)!=EOF){
//printf("%s %s",s1,s2);
len=strlen(s1);
//printf("%d",len);
for(i=0;i<len;i++){
s3[j]=s1[i];
s3[j+1]=s2[len-1-i];
j=j+2;
}
printf("%s\n",s3);
}
return 0;
}
题目很简单,可为什么运行时九度上一直显示RUNTIME ERROR。求解惑 蟹蟹^^ 展开
合并规则为,S1的第一个字符为S的第一个字符,将S2的最后一个字符作为S的第二个字符;
将S1的第二个字符作为S的第三个字符,将S2的倒数第二个字符作为S的第四个字符,以此类推。
输入:
包含多组测试数据,每组测试数据包含两行,代表长度相等的两个字符串S1和S2(仅由小写字母组成,长度不超过100)。
输出:
合并后的新字符串S
样例输入:
abc
def
样例输出:
afbecd
我的代码:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
int main()
{
char s1[100]={0},s2[100]={0},s3[200]={0};
int len,i,j=0;
while(scanf("%s %s",s1,s2)!=EOF){
//printf("%s %s",s1,s2);
len=strlen(s1);
//printf("%d",len);
for(i=0;i<len;i++){
s3[j]=s1[i];
s3[j+1]=s2[len-1-i];
j=j+2;
}
printf("%s\n",s3);
}
return 0;
}
题目很简单,可为什么运行时九度上一直显示RUNTIME ERROR。求解惑 蟹蟹^^ 展开
1个回答
展开全部
增设一个int型变量le2记录s2的长度;
在for(i=0;i<len;i++){...这一句前加一句le2=strlen(s2)-1;确定s2最后一个字符的下标;
将for(i=0;i<len;i++){...改为for(j=i=0;i<len;i++){...以使多次测试时使j归0;
将s3[j+1]=s2[len-1-i];这一句改为s3[j+1]=s2[le2--];;
在printf("%s\n",s3);前加一句s3[j]='\0';以使s3有确定的结束符。
这样我想就OK了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询