台基股份新闻:c++中的一个小问题

来源:百度文库 编辑:中科新闻网 时间:2024/04/29 03:37:27
输出了20个数,后10个数为-858993460
# include <iostream.h>
void main()
{
int i,j,k;
i=j=k=0;
int a[100],b[100];
cout<<"输入集合A的10个元素:";
for(;i<10;i++)
{
cin>>a[i];
}
cout<<"输入集合B的10个元素:";
for(;j<10;j++)
{
cin>>a[i];
}
for(j=0;j<10;j++)
{
for(i=0;i<10;i++)
if(b[j]==a[i])
break;
if(i==10)
{
a[10+k]=b[j];
k++;
}
}
k--;
cout<<"集合A和集合B的交集为:";
for(i=0;i<10+k;i++)
{
cout<<a[i]<<" ";
}
}

#include <stdio.h>
#define MAX 1000

int Union(int setA[], int setB[], int nA, int nB)
{
int outerLoop, innerLoop;
int unionN = nA;

for(outerLoop = 0; outerLoop < nB; outerLoop ++)
{
for(innerLoop = 0; innerLoop < nA; innerLoop ++)
{
if(setB[outerLoop] == setA[innerLoop])
break;
}
if(innerLoop == nA)
{
setA[unionN] = setB[outerLoop];
unionN ++;
}
}

return unionN;
}

int main()
{
int setA[2*MAX], setB[MAX];
int loopCount, unionN;
int nA, nB;

scanf("%d",&nA);
for(loopCount = 0; loopCount < nA; loopCount ++)
scanf("%d",&setA[loopCount]);

scanf("%d",&nB);
for(loopCount = 0; loopCount < nB; loopCount ++)
scanf("%d",&setB[loopCount]);

unionN = Union(setA, setB, nA, nB);

printf("The union:\n");
for(loopCount = 0; loopCount < unionN; loopCount ++)
printf("%d ", setA[loopCount]);
printf("\n");
return 0;
}