我想合并两个数组,但是这段代码没有给我想要的输出。有人可以指出错误吗?我自己应用了这段代码,但是在逻辑上找不到任何错误。
int main()
int i,n,m;
int size;
printf(" enter the size of 1st array");
scanf(" %d",&n);
int a[n];
for(i=0;i<n;i++)
{
printf(" %d element is ",i);
scanf(" %d",&a[i]);
}
printf(" enter the size of 2nd array");
scanf(" %d",&m);
int b[m];
for(i=0;i<m;i++)
{
printf(" %d element is ",i);
scanf(" %d",&a[i]);
}
printf(" the merged array is");
int k;
int arr[size];
for(i=0;i<n;i++)
{
arr[i]=a[i];
}
size=m+n;
for(i=n,k=0;i<size && k<m;i++,k++)
{
arr[i]=b[k];
}
for(i=0;i<size;i++)
{
printf(" %d",arr[i]);
}
}
答案 0 :(得分:0)
程序中有几个问题。
读取第二个数组时,应在数组b
中读取它,但要在数组a
中读取它:
scanf(" %d",&a[i]);
^
应该是
scanf(" %d",&b[i]);
其他问题是在初始化之前使用了变量size
:
int arr[size];
相反,您应该首先使用size
初始化m+n
,然后使用它:
size=m+n;
int arr[size];
此外,您无需在scanf()
中使用格式说明符%d
留空格:
scanf(" %d",&n);
^ this space is not needed