devo fare questo "semplice" programmino, dove inseriti valori interi in due vettori, devo inserire i valori comuni in un terzo vettore.. io ci ho provato, ma mi visualizza chissà quali valori.. o.ò
qualcuno riesce ad aiutarmi, solo nella funzione dei valori comuni, il resto funziona bene..
codice:
/*
inseriti valori in due vettori di dimensione differente,
inserisci in un terzo vettore i valori uguali ad entrambi i vettori,
mentre in un quarto vettore fai l'unione dei due vettori,
escludendo i valori uguali ad entrambi
*/
#include <stdio.h>
#define lung1 5
#define lung2 7
//inserisci i valori nel vettore1
int insVett1(int *dati1,int l1){
int i,num;
for(i=0;i<lung1;i++){
printf("Inserisci un numero %d di %d: ",i+1,lung1);
scanf("%d",& num);
*dati1++=num;
}
}
//inserisci i valori nel vettore2
int insVett2(int *dati2,int l2){
int i,num;
for(i=0;i<lung2;i++){
printf("Inserisci un numero %d di %d: ",i+1,lung2);
scanf("%d",& num);
*dati2++=num;
}
}
//valori uguali ad entrambi i vettori
int visUgu(int *dati1,int l1,int *dati2,int l2,int *datiUgu){
int i,j;
for(i=0;i<lung1;i++){
for(j=0;j<lung2;j++){
if(dati1[i]==dati2[j]){
datiUgu[i]=dati1[i];
}
}
}
for(i=0;i<lung1+lung2;i++){
printf("[ %d ] ",*datiUgu);
*datiUgu++;
}
}
//visualizza vettori
int visVett(int *dati1,int l1,int *dati2,int l2){
int i;
printf("\nIl primo vettore e':\n");
for(i=0;i<lung1;i++){
printf("[ %d ] ",*dati1);
*dati1++;
}
printf("\n\nIl secondo vettore e':\n");
for(i=0;i<lung2;i++){
printf("[ %d ] ",*dati2);
*dati2++;
}
}
int main(){
int test=-1,scelta;
int vett1[lung1],vett2[lung2],vettUgu[lung1+lung2];
printf("Inserisci il primo vettore:\n");
insVett1(vett1,lung1);
printf("\nInserisci il secondo vettore:\n");
insVett2(vett2,lung2);
while(test!=0){
printf("\n1- Visualizza i vettori;");
printf("\n2- Visualizza i valori uguali;");
printf("\n0- Esci;");
printf("\nScelta: ");
scanf("%d",&scelta);
switch(scelta){
case 1:{
visVett(vett1,lung1,vett2,lung2);
printf("\n");
break;
}
case 2:{
printf("\nI valori uguali ad entrambi i vettori sono:\n");
visUgu(vett1,lung1,vett2,lung2,vettUgu);
printf("\n");
break;
}
case 0:{
test=0;
break;
}
}
}
getchar();
}
Grazie mille!