
求C++高手帮我解答下面这个程序的问题。谢谢了。
题目是要求求集合A/B的交集、并集、差集。下面是我的代码。#include<iostream>usingnamespacestd;voidFindIntersection...
题目是要求求集合A/B的交集、并集、差集。
下面是我的代码。
#include<iostream>
using namespace std;
void FindIntersection(int A[10],int B[10]){
int C[10];
int k=0;
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
if(A[i]==B[j]){
C[k++]=A[i];
break;}}}
for(int i=0;i<k-1;i++)
cout<<C[i]<<" ";
cout<<C[k-1]<<endl;}
void FindUnion(int A[10],int B[10]){
int C[10];
for(int i=0;i<10;i++)
C[i]=B[i];
int n=10;
for(int i=0;i<10;i++){
int Find=false;
for(int j=0;j<10;j++){
if(A[i]==B[j]){
Find=true;
break;}}
if(!Find)C[n++]=A[i];}
for(int i=0;i<n-1;i++)
cout<<C[i]<<" ";
cout<<C[n-1]<<endl;}
void FindDeference(int A[10],int B[10]){
int C[10];
int k=0;
for(int i=0;i<10;i++){
int Find =false;
for(int j=0;j<10;j++){
if(A[i]==B[j]){
Find=true;
break;}}
if(!Find)C[k++]=A[i];}
for(int i=0;i<k-1;i++)
cout<<C[i]<<" ";
cout<<C[k-1]<<endl;}
int main()
{
int A[10],B[10];
for(int i=0;i<10;i++)
cin>>A[i];
for(int j=0;j<10;j++)
cin>>B[j];
FindIntersection; //
FindUnion; //
FindDeference; //这三行 编译器显示warning:49 D:\练习草稿本\集合运算.cpp [Warning] statement is a reference, not call, to function `FindIntersection'
system("pause");
return 0;
}
我输入两组数后,没有输出结果。
另外我还想问一下,在求 差集中我本来是用A=A-A[i]来删除A中与B相同 元素的。编译器通过了,但是最后也是没有输出。我在参考书上也曾经看到过这种写法。请问这种算法到底对不? 展开
下面是我的代码。
#include<iostream>
using namespace std;
void FindIntersection(int A[10],int B[10]){
int C[10];
int k=0;
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
if(A[i]==B[j]){
C[k++]=A[i];
break;}}}
for(int i=0;i<k-1;i++)
cout<<C[i]<<" ";
cout<<C[k-1]<<endl;}
void FindUnion(int A[10],int B[10]){
int C[10];
for(int i=0;i<10;i++)
C[i]=B[i];
int n=10;
for(int i=0;i<10;i++){
int Find=false;
for(int j=0;j<10;j++){
if(A[i]==B[j]){
Find=true;
break;}}
if(!Find)C[n++]=A[i];}
for(int i=0;i<n-1;i++)
cout<<C[i]<<" ";
cout<<C[n-1]<<endl;}
void FindDeference(int A[10],int B[10]){
int C[10];
int k=0;
for(int i=0;i<10;i++){
int Find =false;
for(int j=0;j<10;j++){
if(A[i]==B[j]){
Find=true;
break;}}
if(!Find)C[k++]=A[i];}
for(int i=0;i<k-1;i++)
cout<<C[i]<<" ";
cout<<C[k-1]<<endl;}
int main()
{
int A[10],B[10];
for(int i=0;i<10;i++)
cin>>A[i];
for(int j=0;j<10;j++)
cin>>B[j];
FindIntersection; //
FindUnion; //
FindDeference; //这三行 编译器显示warning:49 D:\练习草稿本\集合运算.cpp [Warning] statement is a reference, not call, to function `FindIntersection'
system("pause");
return 0;
}
我输入两组数后,没有输出结果。
另外我还想问一下,在求 差集中我本来是用A=A-A[i]来删除A中与B相同 元素的。编译器通过了,但是最后也是没有输出。我在参考书上也曾经看到过这种写法。请问这种算法到底对不? 展开
1个回答
展开全部
改为这样,你上面定义的函数是有参数的,所以你要传参数进去。
FindIntersection(A,B); //
FindUnion(A,B); //
FindDeference(A,B);
FindIntersection(A,B); //
FindUnion(A,B); //
FindDeference(A,B);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询