Rivedi il tuo codice da C master (che tra l'altro fa male agli occhi cmq...), e con me hai chiuso. Io non volevo arrivare a tanto pero dato i tuoi giudizi e commenti insignificanti non mi costringi ad altro.
lol pensi che me ne freghi qualcosa ?
PS: almeno prima di postarlo ass che sia corretto, invece NO, PERCHÈ EVIDENTEMENTE NON LO HAI NEMMENO PROVATO, quindi non scrivere che è corretto o almeno impegnati a correggerlo con un po più di linee . Non confondere la mente degli altri con i tuoi errori. Non si fa del male agli altri in questa ed in nessun'altra maniera.
Il programma deve individuare le lettere assenti, e non quelle presenti.
Inoltre lui non ha specificato che il programma deve funzionare con le lettere minuscole:
Quello che non capisco è perchè non va, se nel vettore ho ABC, alla prima chiamata mi da I, poi mi da K, e poi mi da di nuovo K.
Di regola dovrebbe darmi D, poi E, poi F ma sbagierò qualcosa nella logica dell'algoritmo.
Per far sputare fuori tutte le lettere ... bhè ci deve pensare lui (niente pappa pronta).
"L'if -else serve per prendere decisioni (dove else è facoltativa). L'espressione è valutata; se è vera (se cioè l'istruzione ha un valore diverso da 0) è eseguita. Se è falsa (espressione è zero) non viene eseguita.
Poichè l'istruzione if si limita a verificare il valore numerico di un espressione, Ê POSSIBILE RICORRERE AD ALCUNE SCORCIATOIE NELLA CODIFICA. LA PIU OVVIA CONSISTE NELLO SCRIVERE:
if(espressione)
invece di
if(espressione !=0)
L'if else (come lo chiami tu) è un costrutto selettivo, apri il tuo manuale e vai a controllare.
La codifica più ovvia per te consiste nell'accorciare il costrutto il più possibile ? Attenzione, questo magari vale solo per te.
Vuoi accorciare: if (!foo()) ...
Ancora, il tuo discorso si applica al valore dato a return alla fine della funzione main. 0 In caso di normale terminazione del programma, un valore differente siggnifica un errore/terminazione anomala. In un altra funziona puoi restituire il valore che vuoi
No non hai proprio capito! Leggi bene quello che scrivo: io ho parlato di convenzione e non ho detto che deve essere così. Ho detto che in c, solitamente, si ritorna 0 in caso di successo, quindi, è buona norma mantenere uno standard di codifica uniforme.
Per quanto riguarda il tuo codice:
codice:
int main()
{
int i, a[] = {0,1,2,3,4,5,6,7,8,9}, b[] = {0,1,2,3,4,5,6,7,8,0};
for(i=0;i<N;i++)
printf("a[%d] = %d\tb[%d] = %d\n", i, a[i], i, b[i]);
if(compare(a, b))
printf("The two arrays are equals\n");
else
printf("The two arrays are differents\n");
return 0;
}
int compare(int a[], int b[])
{
int i = 0;
while(i<N) {
if(a[i] == b[i])
i++;
else
return 0;
}
return 1;
}
Hai utilizzato N nella tua funzione mandando a puttane il concetto di black box: tutto quello che la funzione utilizza deve essere passato come parametro, per renderla indipendente dal contesto.