Funzione in linguaggio c

Serginho153

Nuovo Utente
95
0
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
 

Itachi1991

Nuovo Utente
100
8
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.
 

Serginho153

Nuovo Utente
95
0
Perfetto. C'è un modo per verificare se le mie procedure vanno bene? Cioè un modo per eseguirle che non ne modifichi il corpo?
 

PhilipMod

Utente Attivo
561
155
CPU
i7 3930k
Scheda Madre
asus p9x79 pro
HDD
sandisk 480gb
RAM
corsair dominator platinum 32gb
GPU
evga gtx 780ti kingpin
PSU
antec hcp 1300
Case
900d
OS
windows
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.
 

matteoc91

Utente Attivo
158
17
Perfetto. C'è un modo per verificare se le mie procedure vanno bene? Cioè un modo per eseguirle che non ne modifichi il corpo?
Basta che le richiami in un main passandogli i parametri che vuoi e poi fai eseguire il tutto stampando il risultato sopo la loro esecuzione :)
 

Serginho153

Nuovo Utente
95
0
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?
 

matteoc91

Utente Attivo
158
17
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).
 

Ci sono discussioni simili a riguardo, dai un'occhiata!

Entra

oppure Accedi utilizzando

Hot: E3 2021, chi ti è piaciuto di più?

  • Ubisoft

    Voti: 36 22.6%
  • Gearbox

    Voti: 3 1.9%
  • Xbox & Bethesda

    Voti: 101 63.5%
  • Square Enix

    Voti: 14 8.8%
  • Capcom

    Voti: 7 4.4%
  • Nintendo

    Voti: 21 13.2%
  • Altro (Specificare)

    Voti: 15 9.4%

Discussioni Simili