0

長さ「N」の2つのベクトルの交点を出力し、同じ数を2回出力できないコードを(cで)書きたいと思います。ベクトルは、入力 (任意の数値) を 1 つずつ読み取る関数で埋められます。結局のところ、コードは最初の 2 つのベクトルの交点を含む別のベクトルを出力する必要があります。今まで私は以下のコードを書きましたが、解決できない論理エラーがあります。

#include <stdlib.h>
#include <stdio.h>

void preencheVetor(int* v, int tamanho){
    int i=0;
    for(i=0;i<tamanho;i++){
        scanf("%d", *(v+i));
        printf("\n");
    }
}

void interVetor(int* v1, int* v2, int tamanho){
    int* v3=malloc(sizeof(int)*tamanho);
    int i1=0;
    int i2=0;
    int i3=0;
    int c=0;
    for(i1=0;i1<tamanho;i1++){
        for(i2=0;i2<tamanho;i2++){
            if((v1[i1])==(v2[i2])){
                *(v3+c)=v2[i2];
                c++;
            }
        }
    }
    for(i3=0;i3<tamanho;i3++){
        printf("%d", *(v3+i3));
        printf("\n");
    }   
}

int main(){
int n=0;
printf("Vectors Lenght:\n");
scanf("%d", &n);
printf("\n\n");
int v1[n];
int v2[n];
preencheVetor(v1, n);
printf("\n\n");
preencheVetor(v2, n);
printf("\n\n");
interVetor(v1, v2, n);
system("PAUSE");
return 0;
}
4

1 に答える 1