Divisione di array

di il
3 risposte

Divisione di array

Ciao ragazzi, premetto che ho pochissimo tempo in quanto entro domattina avrei dovuto consegnare gli elaborati al professore, ma ci sto perdendo la notte e non ne esco (giornataccia a lavoro e la testa ha già di per se i suoi grattacapi...)...

Devo realizzare una divisione di un array dato un discriminante, ora io l'ho realizzato in questo modo:
#include <stdio.h> 
#include <iostream.h> 
int i, n, a, j;  
int trovato = 0; 
int numeri[100]; 
int vector1[100];  
int vector2[100];  
int num;  
main() 
{     
cout << "Quanti numeri?: ";     
cin >> n;  
for (i = 0; i < n; i++) 
{ 
cout << "Numero "<< i+1 <<" : "; 
cin >> numeri[i]; 
}  
printf ("Numero da cercare: "); 
scanf ("%d", &num); 
i = 0;  
do 
{ 
if (numeri[i] == num) 
{ 
trovato = 1; 
} 
else 
{ 
i++; 
} 
} while (trovato == 0 && i < n);  
if (trovato) 
{ 
cout << "\n\n" << "Trovato" << "\n"; 
cout << "L'elemento avente numero: " << numeri[i] << " si trova nella posizione: " << i+1 << "\n"; 
a=i;  
cout << "\n\nStampo la lista degli elementi del primo vettore" << "\n"; 
for (i=0; i<a; i++)
 {     
j=i;     
vector1[j]=numeri[i];     
cout << vector1[j] << " "; 
};  
cout << "\n\nStampo la lista degli elementi del secondo vettore" << "\n"; 
for (i=a; i<n; i++) 
{     
j=a;     
vector2[j]=numeri[i];     
cout << vector2[j] << " "; 
}; 
} 
else       
{      
cout << "Numero non trovato" << "\n";      
}       
cout << "\n\n\n\n"; 
system("pause"); 
} 
ed il tutto mi funziona, il problema è che il professore lo vuole sviluppato in funzioni e non appena provo a sciogliere il tutto, mi fa un casino di errori a palla, qualcuno di voi riesce a darmi una mano? non so più dove sbattere la testa... :messner:

3 Risposte

  • Re: Divisione di array

    Su codeguru ti massacrano, cmq tutte le osservazioni fatte sono vere. Li si parla di standard e quì di standard ne vedo poco io ad iniziare dal main definito come void.
  • Re: Divisione di array

    Se per risolvere il problema, devo essere massacrato, lo accetto con piacere...


    ho variato il codice ed ora non esegue la funzione di inserimento dati nell'array
    #include <cstdio>
    #include <iostream>
    int i, n, a, j; 
    int trovato = 0;
    int num;
    int vector2[100]; 
    int vector1[100];
    int inserimento(int n, int array[]);
    
    int main()
    {
        int *array;
        std::cout << "Quanti numeri: ";
        std::cin >> n;
        array= (int *) malloc (n*sizeof(int));
    
    int inserimento(int n, int array[]);
    
    printf ("Numero da cercare: ");
    scanf ("%d", &num);
    i = 0;
    
    do
    {
    if (array[i] == num)
    {
    trovato = 1;
    }
    else
    {
    i++;
    }
    } while (trovato == 0 && i < n);
    
    if (trovato)
    {
    std::cout << std::endl << std::endl << "Trovato" << std::endl;
    std::cout << "L'elemento avente numero: " << array[i] << " si trova nella posizione: " << i+1 << std::endl;
    a=i;
    
    std::cout << std::endl << std::endl << "Stampo la lista degli elementi del primo vettore" << std::endl;
    for (i=0; i<a; i++)
    {
        j=i;
        vector1[j]=array[i];
        std::cout << vector1[j] << " ";
    };
    
    std::cout << std::endl << std::endl << "Stampo la lista degli elementi del secondo vettore" << std::endl;
    for (i=a; i<n; i++)
    {
        j=a;
        vector2[j]=array[i];
        std::cout << vector2[j] << " ";
    };
    }
    else 
         {
         std::cout << "Numero non trovato" << std::endl;
         }
         
    std::cout << std::endl << std::endl << std::endl << std::endl;
    system("pause");
    } 
    
    int inserimento (int n, int array[])
    {
    for (i = 0; i < n; i++)
    {
    std::cout << "Numero "<< i+1 <<" : ";
    std::cin >> array[i];
    }
    }
    
  • Re: Divisione di array

    L'hai risolto o non ti funziona ancora?
Devi accedere o registrarti per scrivere nel forum
3 risposte