Nhờ mọi người xem giúp sao code của em chạy hay bị has stopped working vậy? nhất là khi nhập số phần tử mảng nhiều.
Đã phát hiện ra vấn đề, hình như do cấp phát động rồi lúc sau lại thêm phần tử mà không cấp phát thêm, m.n cho hỏi cấp phát thêm thế nào để phần tử trong mảng không bị ảnh hưởng vậy ??
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
void nhap(int ,int*);
void xuat(int ,int*);
void SapXepTang(int,int *);
void tronMang(int n,int &m, int* mang1,int *mang2);
int main(){
srand(time(NULL));
int *mangSoNguyen1,*mangSoNguyen2;
int n,m;
printf("Nhap so phan tu mang 1: ");
scanf("%d", &n);
printf("Nhap so phan tu mang 2: ");
scanf("%d", &m);
mangSoNguyen1 = (int*)malloc(n*sizeof(int));
nhap(n,mangSoNguyen1);
mangSoNguyen2 = (int*)malloc(m*sizeof(int));
nhap(m,mangSoNguyen2);
printf("\nMang chua sap xep: ");
xuat(n,mangSoNguyen1);
xuat(m,mangSoNguyen2);
SapXepTang(n,mangSoNguyen1);
SapXepTang(m,mangSoNguyen2);
printf("\nMang da sap xep: ");
xuat(n,mangSoNguyen1);
xuat(m,mangSoNguyen2);
printf("\nTron mang: ");
tronMang(n,m,mangSoNguyen1,mangSoNguyen2);
xuat(m,mangSoNguyen2);
free(mangSoNguyen1);
free(mangSoNguyen2);
getch();
return 0;
}
void nhap(int n,int* mangSoNguyen){
for (int i = 0; i < n; i ++)
*(mangSoNguyen + i) = rand()%100;
}
void xuat(int n,int* mangSoNguyen){
printf("\n");
for(int i = 0; i <n; i++){
printf("%d ", *(mangSoNguyen + i));
}
}
void SapXepTang(int n, int *mang){
for(int i = 0; i < n; i++){
for(int j = i+1; j < n; j++){
if (mang[i] > mang[j]){
int temp = mang[i];
mang[i] = mang[j];
mang[j] = temp;
}
}
}
}
void tronMang(int n,int &m, int* mang1,int *mang2){
for (int i = 0; i < n; i++ ){
for(int j = 0; j < m; j++){
if (mang1[i] > mang2[j] && mang1[i] < mang2[j+1]){
for(int a = m; a > j + 1; a--){
mang2[a] = mang2[a-1];
}
mang2[j+1] = mang1[i];
m++;
break;
} else if (mang1[i] < mang2[0]){
for(int a = m; a > 0; a--){
mang2[a] = mang2[a-1];
}
mang2[0] = mang1[i];
m++;
break;
} else if (mang1[i] > mang2[m-1]){
mang2[m] = mang1[i];
m++;
break;
}
}
}
}

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?