01/10/2018, 16:18
Kết hợp 2 mảng c++
Nhập 2 mảng (a, N) và (b, M) và số nguyên p (0≤p<N). Hãy chèn mảng b vào vị trí p của a. Ví dụ: (a, 4): 5 3 6 7; (b, 3): 2 9 11; p:1 a, 7: 5 2 9 11 3 6 7
** e làm thế này:
#include <iostream>
using namespace std;
void nhap(int *a,int &N,int *b,int &M)
{
for(int i=0;i<N;i++)
{
cout << "a[" << i << "] = ";cin >> *(a+i);
}
for(int i=0;i<M;i++)
{
cout << "b[" << i << "] = ";cin >> *(b+i);
}
}
int kethop(int *a,int &N,int *b,int &M,int p)
{
int c[N+M];
for (int i=0;i<p;i++)
{
c[i]=a[i];
}
for (int i=p;i<N+p;i++)
{
c[i]=b[i-p];
}
for (int i=p+N;i<N+M;i++)
{
c[i]=a[i-N];
}
for (int i=0;i<N+M;i++)
{
cout << "c[" << i << "] = " << c[i] << endl;
}
}
int main()
{
int N,M,p;
cout << "N = ";cin >> N;
cout << "M = ";cin >> M;
cout << "p = ";cin >> p;
int a[N];
int b[M];
nhap(a,N,b,M);
cout << "Mang b vao vi tri p trong mang a cho ra mang c nhu sau: " << endl;
kethop(a,N,b,M,p);
return 0;
}
nhưng không hiểu sao kết quả chạy sai, mn giúp e chỉ ra lỗi vs, e cảm ơn!
Bài liên quan
Bạn đã debug chương trình trước khi hỏi chưa ???
mình chạy nhưng kết quả hiện ra sai!
Lỗi nằm ở chỗ đoạn code trong hàm kethop bạn nhầm N với M:
Code của bạn có thể sửa lại như thế này:
cảm ơn b nhiều, nhiều chữ quá mình nhìn hoa mắt,