編寫程序,實現兩個集合的交運算(用C語言)
題目:
編寫程序,實現兩個集合的交運算(用C語言)
1、已知兩個整數集合中的數據以遞增次序分別存放在數組A,B中,編寫程序實現兩個集合的交運算(即取兩個集合相同的數據元素),並把得到的交集數據存放在數組A中,在程序中不允許再定義第三個數組.
2、若有一下說明和語句:int c[4][5],(*cp)[5]; cp=c;下面對c數組元素正確的引用是()
A) cp+1 B) *(cp+3) C) *(cp+1)+3 D)*(*cp+2) (我最大的困惑是c數組是一個4行5列的數組,而cp指針應該指向一個元素爲5的數組,那麼cp指針賦給數組c,究竟是指向二維數組的列還是指向行)
解答:
#include<stdio.h>
#include<string.h>
int jiaoji(int A[],int B[],int a,int b)
{
\x05int i,j,t;
\x05t=a;
\x05for(i=0;i<a;i++)
\x05\x05for(j=0;j<b;j++)
\x05\x05{
\x05\x05\x05if(A[i]==B[j])
\x05\x05\x05{
\x05\x05\x05\x05A[t]=B[j];
\x05\x05\x05\x05t++;
\x05\x05\x05}
\x05\x05}
\x05\x05for(i=0;i<t-a;i++)
\x05\x05{
\x05\x05 A[i]=A[a+i];
\x05\x05}
\x05\x05return t-a;
}
int main ()
{
\x05int A[50],B[50],a,b,t;
\x05printf("請輸入A的元素個數:\n");
\x05scanf("%d",&a);
\x05printf("請輸入A的元素:\n");
\x05for(int i=0;i<a;i++)
\x05\x05scanf("%d",&A[i]);
\x05printf("請輸入B的元素個數:\n");
\x05scanf("%d",&b);
\x05printf("請輸入B的元素:\n");
\x05for(int i=0;i<b;i++)
\x05\x05scanf("%d",&B[i]);
\x05t=jiaoji(A,B,a,b);
\x05for(int i=0;i<t;i++)
\x05\x05printf("%d ",A[i]);
return 0;
}
再問: return t-a��return 0��ʲô��˼����
再問: return t-a��return 0��ʲô��˼����
再答: ��һ����return t-a�������A�в�֮���Ԫ�صĸ���
return 0 ����Ϊ�Ҷ������int main()����
��Ҫ������ֵ��������void �Ͳ���Ҫ#include<stdio.h>
#include<string.h>
int jiaoji(int A[],int B[],int a,int b)
{
int i,j,t;
t=a;
for(i=0;i<a;i++)
for(j=0;j<b;j++)
{
if(A[i]==B[j])
{
A[t]=B[j];
t++;
}
}
for(i=0;i<t-a;i++)
{
A[i]=A[a+i];
}
return t-a;
}
void main ()
{
int A[50],B[50],a,b,t;
printf("������A��Ԫ�ظ���\n");
scanf("%d",&a);
printf("������A��Ԫ�أ�\n");
for(int i=0;i<a;i++)
scanf("%d",&A[i]);
printf("������B��Ԫ�ظ���\n");
scanf("%d",&b);
printf("������B��Ԫ�أ�\n");
for(int i=0;i<b;i++)
scanf("%d",&B[i]);
t=jiaoji(A,B,a,b);
for(int i=0;i<t;i++)
printf("%d ",A[i]);
}
添加新評論