Funzione in linguaggio c

Pubblicità

Serginho153

Nuovo Utente
Messaggi
95
Reazioni
0
Punteggio
28
Salve. Sono nuovo in informatica, è il primo anno che la studio. Dovrei fare una funzione come segue:
Scrivere in C una funzione
boolean check (int a [], int b [], int dima, int dimb)
che, dati due array a e b di dimensione dima e dimb rispettivamente, verica che ogni elemento di a occorra in b
un numero dispari di volte.


Dopo aver definito il tipo boolean come ci si aspetterebbe,
io ho fatto come segue:

boolean check (int a [], int b [], int dima, int dimb)
{
int i, j, conta=0;
for (i=0; i<dima; i++)
{for (j=0; i<dimb; j++)
if(a==b[j]) conta=conta+1;
if(conta%2==0) return false;
else conta=0;}
return true;
}

Vorrei sapere:
  • è giusto usare return così, perchè non ho ancora ben capito se return vuole una variabile o va bene anche con false..vorrei quindi ri-spiegato return
  • i blocchi(parentesi grffe) sono sistemat in modo che la funzione faccia quello che ci è stato chiesto?
Prego chiunque mi sappia rispondere anche parzialmente di dire qualcosa. e se non è il luogo più adatto per chiedere fatemi sapere. Lo posterò da qualche altra parte
 
boolean check (int a [], int b [], int dima, int dimb)
{
int i, j, conta=0;
for (i=0; i<dima; i++)
{for (j=0; i<dimb; j++)
if(a==b[j]) conta=conta+1;
if(conta%2==0) return false;
else conta=0;}
return true;
}

Ammesso che (come hai detto) hai definito il tipo boolean il return ammette sia variabili che costanti.
Per quanto riguarda i blocchi io farei cosi:
Codice:
boolean check (int a [], int b [], int dima, int dimb)
{
int i, j, conta=0;
for (i=0; i<dima; i++)
{
    for (j=0; [B]j[/B]<dimb; j++)              <---------- qui avevi un errore, c'era una i al posto di una j
    {
    if(a[i]==b[j]) 
        conta=conta+1;
    }
if(conta%2==0)
    return false;
else 
    conta=0;
}
return true;
}

Ho dato un occhiata rapida ma dovrebbe andare.
 
Perfetto. C'è un modo per verificare se le mie procedure vanno bene? Cioè un modo per eseguirle che non ne modifichi il corpo?
 
Usa C++, noi in informatica usiamo questo programma, basta compilare e ti dice se hai errori e dove oppure se va bene ti dice conpletati 1.
 
ci avevo pensato ma non ricordo come richiamarla XD

ma se si usa dev c++ devo usare per forza system("pause"); per bloccare a schermo l'esecuzione?
 
Per richiamarla basta che scrivi qualcosa tipo:
Codice:
boolean flag=check(a,b,dima,dimb);
Dove a e b sono 2 array che avrai precedentemente dichiarato ed inizializzato (obv dima e dimb sono le rispettive dimensioni, anch'esse dichiarate ed inizializzate precedentemente).
 
Pubblicità
Pubblicità
Indietro
Top