編寫程序,實現兩個集合的交運算(用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]);

}

添加新評論

暱稱
郵箱
網站