#include<stdio.h>
int main()
{
char a[1000],b[1000],c[1000];
int n,m,i,j,k;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%c",&a[i]);
}
scanf("%d",&m);
for(i=0;i<m;i++)
{
scanf("%c",&b[i]);
}
for(i=0,j=0,k=0;i<m+n;i++)
{
if(j<n)
c[i]=a[j++];
else
c[i]=b[k++];
}
for(i=0;i<m+n;i++)
{
printf("%c ",c[i]);
}
return 0;
}
合并两个数组,不用排序,这个代码为什么没有输出?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 筷头哥 2021-04-18 08:51关注
这个你的输入可能有点问题吧,在每一次输入数组的大小之后,需要使用一个getchar()来吸收回车符,不然这个回车符就被for循环里的scanf("%c")给获取了,并且在for循环输入元素的时候还需要一个getchar()来吸收回车,具体代码如下:
#include<stdio.h> int main() { char a[1000],b[1000],c[1000]; char ch; int n,m,i,j,k; scanf("%d",&n); getchar(); for(i=0;i<n;i++) { scanf("%c",&a[i]); ch = getchar(); } scanf("%d",&m); getchar(); for(i=0;i<m;i++) { scanf("%c",&b[i]); ch = getchar(); } for(i=0,j=0,k=0;i<m+n;i++) { if(j<n) c[i]=a[j++]; else c[i]=b[k++]; } for(i=0;i<m+n;i++) { printf("%c ",c[i]); } return 0; }
运行结果图本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 测距传感器数据手册i2c
- ¥15 RPA正常跑,cmd输入cookies跑不出来
- ¥15 求帮我调试一下freefem代码
- ¥15 matlab代码解决,怎么运行
- ¥15 R语言Rstudio突然无法启动
- ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
- ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
- ¥15 用windows做服务的同志有吗
- ¥60 求一个简单的网页(标签-安全|关键词-上传)
- ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法