01/10/2018, 14:20
Cho mình hỏi là code này sai ở đâu
Cho mình hỏi là code này sai ở đâu. Bài là : Cho 2 mảng (a, n) và (b, m). Hãy in ra các phần tử xuất hiện trong mảng a nhưng không xuất hiện trong mảng b.In ra trên một dòng duy nhất các phần tử xuất hiện trong mảng a nhưng không xuất hiện trong mảng b, các số cách nhau bởi dấu cách (in theo thứ tự tăng dần).
#include <iostream>
using namespace std;
int NhapMang(int a[],int b[],int &n,int &m)
{
cin >> n;
cin >> m;
for (int i=0;i<n;i++)
cin >> a[i];
for (int j=0;j<m;j++)
cin >> b[j];
}
int Appearent(int a[],int b[],int k[],int n,int m)
{
int bdem=0;
for (int i=0;i<n;i++)
{
int dem=0;
for (int j=0;j<m;j++)
{
if (a[i]==b[j])
{
dem++;
}
}
if (dem==0)
{
k[i]=a[i];
bdem++;
}
}
int temp=0;
for (int i=0;i<bdem;i++)
{
for (int j=i+1;j<bdem;j++)
if (k[i]>k[j])
{
temp=k[i];
k[i]=k[i+1];
k[i+1]=temp;
}
cout << k[i]<<" ";
}
}
int main()
{
int a[1000],b[1000],k[1000],n,m;
NhapMang(a,b,n,m);
Appearent(a,b,k,n,m);
return 0;
}
Bài liên quan
sai ở dòng này, tự xử được rồi ha?
Sai ở chỗ:
k[i]=a[i];
(trường hợp a[0] == b[j] => (dem++) => bỏ qua hàm if(dem==0) => k[0] ko có giá trị
và
k[i]=k[i+1];
k[i+1]=temp;
(trường hợp k[3] = {7, 3,1} sẽ sort thành {3, 1, 7})
P/S: sai thì các bác chém nhẹ thôi nhé, em cũng gà mờ đang tự học C++
HI. Cảm ơn đồng chí :v
#include
using namespace std;
int NhapMang(int a[],int b[],int &n,int &m)
{
cin >> n;
cin >> m;
for (int i=0;i<n;i++)
cin >> a[i];
for (int j=0;j<m;j++)
cin >> b[j];
}
int Appearent(int a[],int b[],int k[],int n,int m)
{
int bdem=0;
for (int i=0;i<n;i++)
{
int dem=0;
for (int j=0;j<m;j++)
{
if (a[i]==b[j])
{
dem++;
}
}
if (dem==0)
{
k[i]=a[i];
bdem++;
}
}
for (int i=0;i<bdem;i++)
{
int temp=0;
if (k[i]>k[i+1])
{
temp=k[i+1];
k[i+1]=k[i];
k[i]=temp;
}
cout << k[i] <<" ";
}
}
int main()
{
int a[1000],b[1000],k[1000],n,m;
NhapMang(a,b,n,m);
if (n>0&&n<=1000&&m>0&&m<=1000)
Appearent(a,b,k,n,m);
return 0;
}
Đoạn này là sau khi mình tự check bug lại. Nhưng ko thay đổi k[i]=a[i]. Bạn có thể cho mình biết cách sửa bài theo hướng làm của bạn k?
P/s : Vì test bài này đc có 10/100 nên mình nghĩ chắc thiếu sót đoạn nào đó. Mong các c chỉ giáo :v
ý đồ của bạn khi gán k[i] = a[i] và bdem++ là gì? Xem lại ý đồ đó có đúng ko?
sửa i thành bdem là được, còn i nào thì tự suy nghĩ đi