#include <stdio.h>
int main()
{
int n1,n2;
int arr1[100];
int arr2[100];
int add[100];
int k=0;
int i,j;
scanf("%d",&n1);
for(i=0;i<n1;i++)
scanf("%d",&arr1[i]);
scanf("%d",&n2);
for(i=0;i<n2;i++)
scanf("%d",&arr2[i]);
for(i=0,j=0,k=0;i<n1&&j<n2;k++)
{
if(arr1[i]<arr2[j])
{
add[k]=arr1[i];
i++;
}
else if(arr1[i]>arr2[j])
{
add[k]=arr2[j];
j++;
}
else
{
add[k]=arr2[j];
j++;
i++;
}
}
if(i==n1)
for(int m=j;m<n2;m++,k++)
add[k]=arr2[m];
if(j==n2)
for(int m=i-1;m<n1;m++,k++)
add[k]=arr1[m];
for(int i=0;i<k;i++)
{
printf("%d",add[i]);
if(i!=k-1) putchar(' ');
}
return 0;
}
![](https://profile-avatar.csdnimg.cn/default.jpg!4)
pta合并两个有序数组为什么有一个点是错的不知道是哪里
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- micthis 2023-12-18 22:13关注
#include <stdio.h> int main() { int n1,n2; int arr1[100]; int arr2[100]; int add[100]; int k=0; int i,j; scanf("%d",&n1); for(i=0;i<n1;i++) scanf("%d",&arr1[i]); scanf("%d",&n2); for(i=0;i<n2;i++) scanf("%d",&arr2[i]); for(i=0,j=0,k=0;i<n1&&j<n2;k++) { if(arr1[i]<arr2[j]) { add[k]=arr1[i]; i++; } else if(arr1[i]>arr2[j]) { add[k]=arr2[j]; j++; } else { add[k]=arr2[j]; j++; //i++; } } if(i==n1) for(int m=j;m<n2;m++,k++) add[k]=arr2[m]; if(j==n2) for(int m=i;m<n1;m++,k++) add[k]=arr1[m]; for(int i=0;i<k;i++) { printf("%d",add[i]); if(i!=k-1) putchar(' '); } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1
悬赏问题
- ¥20 C#调用虚拟键盘TabTip.exe
- ¥15 Qt4代码实现下面的界面
- ¥15 CCS离散化传递函数与仿真不一致
- ¥15 prism提示我reinstall prism 如何解决
- ¥15 asp.core 权限控制怎么做,需要控制到每个方法
- ¥20 while循环中OLED显示中断中的数据不正确
- ¥15 这个视频里的stm32f4代码是怎么写的
- ¥15 JNA调用DLL报堆栈溢出错误(0xC00000FD)
- ¥15 请教SGeMs软件的使用
- ¥15 自己用vb.net编写了一个dll文件,如何只给授权的用户使用这个dll文件进行打包编译,未授权用户不能进行打包编译操作?