Esercizio vettori

di Anonimizzato23022 il
7 risposte
Ragazzi ho provato a fare questo esercizio:

Sviluppare un programma che acquisisca da tastiera due arraycontenenti 10 numeri interi (int num1[10], int num2[10]),assicurandosi (per ogni array) che l’utente non inserisca un numero già inserito (in questo caso, ripetere l’acquisizionedi ogni elemento che sia già stato inserito).Si trovino quindi tutti gli elementi comuni ad entrambi gli array e si stampi un messaggio indicante, per ogni elemento comune,l’indice occupato nel primo array e nel secondo.

il programma che ho scritto funziona, ma mi sembra troppo lungo e macchinoso:

#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{int V[10];
int B[10];
int i,j,g;
i=1;bool uguale=true;
cout<<"inserire gli interi per il vettore V"<<endl;
cin>>V[0];
while (i<10)
{cin>> V[i];
 for (j=0; j<i; j++)
 {if (V[j]==V[i])
 {uguale=false;};}
if(uguale==false)
{while(uguale==false)
 {cout<<" numero non valido. inserire un altro numero"<<endl;
 cin>>g;
 V[i]=g;
 for (j=0; j<i; j++)
 {if (V[j]==V[i])
 {uguale=false;}
 else {uguale=true;};};};}
i++;
uguale=true;
g=0;}
cout<<"vettore v"<<endl;
for (i=0; i<10; i++)
{cout<<V[i]<<" ";}
cout<<endl;i=1;
uguale=true;
cout<<"inserire gli interi per il vettore B"<<endl;
cin>>B[0];
while (i<10)
{cin>> B[i];
 for (j=0; j<i; j++)
 {if (B[j]==B[i])
 {uguale=false;};}
if(uguale==false)
{while(uguale==false)
 {cout<<" numero non valido. inserire un altro numero"<<endl;
 cin>>g;
 B[i]=g;
 for (j=0; j<i; j++)
 {if (B[j]==B[i])
 {uguale=false;}
 else {uguale=true;};};};}
i++;
uguale=true;
g=0;}
cout<<"vettore b"<<endl;
for (i=0; i<10; i++)
{cout<<B[i]<<" ";}
cout<<endl;
int f;
bool conta=false;
for (i=0; i<10; i++)
{j=0;
conta=false;
while(conta==false&&j<10)
{if (V[i]==B[j])
{conta=true;f=j;}
else{j++;};}
if (conta=true)
{cout<<"il numero "<<V[i]<<" si trova nel vettore V in posizione "<<i<<" e nel vettore b in posizione "<<f<<endl};}
return 0;}
va bene così o si può snellire?

7 Risposte

  • Così è illeggibile! Non è che se lo scrivi tutto su una riga lo snellisci!
    Indenta bene il codice.
  • 
    #include <cstdlib>
    #include <iostream>
    using namespace std;
    int main()
    {int V[10],B[10],i,j,g;
    i=1;
    bool uguale=true;
    cout<<"inserire gli interi per il vettore V"<<endl;
    cin>>V[0];
    while (i<10)
    {cin>> V[i];
     for (j=0; j<i; j++)
     {if (V[j]==V[i])
     {uguale=false;}
     }
    if(uguale==false)
    {while(uguale==false)
     {cout<<" numero non valido. inserire un altro numero"<<endl;
     cin>>g;
     V[i]=g;
     for (j=0; j<i; j++)
     {if (V[j]==V[i])
     {uguale=false;}
     else {uguale=true;}
     }
     }
     }
    i++;
    uguale=true;
    g=0;}
    cout<<"vettore v"<<endl;
    for (i=0; i<10; i++)
    {cout<<V[i]<<" ";}
    cout<<endl;
    i=1;
    uguale=true;
    cout<<"inserire gli interi per il vettore B"<<endl;
    cin>>B[0];
    while (i<10)
    {cin>> B[i];
     for (j=0; j<i; j++)
     {if (B[j]==B[i])
     {uguale=false;}
     }
    if(uguale==false)
    {while(uguale==false)
     {cout<<" numero non valido. inserire un altro numero"<<endl;
     cin>>g;
     B[i]=g;
     for (j=0; j<i; j++)
     {if (B[j]==B[i])
     {uguale=false;}
     else {uguale=true;}
     }
     }
     }
    i++;
    uguale=true;
    g=0;}
    cout<<"vettore b"<<endl;
    for (i=0; i<10; i++)
    {cout<<B[i]<<" ";}
    cout<<endl;
    int f;
    bool conta=false;
    for (i=0; i<10; i++)
    {j=0;
    conta=false;
    while(conta==false&&j<10)
    {if (V[i]==B[j])
    {conta=true;
    f=j;
    cout<<"il numero "<<V[i]<<" si trova nel vettore V in posizione "<<i<<" e nel vettore B in posizione "<<f<<endl;}
    else{j++;}
    }
    }
    return 0;}
  • Ma mi stai prendendo in giro?
  • Qual è il problema
  • spingar ha scritto:


    Qual è il problema
    Indenta bene il codice
  • Ma non ce l'avete un compilatore?
  • Non so indentarlo meglio
Devi accedere o registrarti per scrivere nel forum
7 risposte