PDA

Visualizza la versione completa : [c] ricerca in un array con il while


simone1988
24-02-2009, 09:23
printf("inserisci cognome dello studente da ricercare\n"); scanf("%s",&cognome); printf("inserisci nome dello studente da ricercare\n"); scanf("%s",&nome);
while (((student[j].cognome!=cognome) || (student[j].nome!=nome))&& (j<NUM))//controllare la condizione
{printf("nn ce");j=j+1;}

allora ho un array di struct che contiene caratteri ora devo fare sto ciclo per ricercare uno studente per ho provato cento volte e non lo trova mai,infatti il ciclo si dovrebbe fermare quando trova lo studente,dopo c un if che controlla se lo studente stato trovato

YuYevon
24-02-2009, 09:45
Ciao simone

se devi confrontare delle stringhe non puoi ricorrere agli operatori di relazione ( =, != ecc...) ma devi ricorrere alle funzioni per le stringhe ( in questo caso, strcmp() )

Comununque la prossima volta indenta meglio il codice :stordita:



printf("inserisci cognome dello studente da ricercare\n");
scanf("%s",&cognome);

printf("inserisci nome dello studente da ricercare\n");
scanf("%s",&nome);

while ( ( ( student[j].cognome != cognome ) || ( student[j].nome != nome ) ) && (j<NUM) ) {
printf("non c'");
j = j + 1;
}

simone1988
24-02-2009, 11:37
si infatti dopo 5 minuti che ho postato mi era venuto in mente(purtroppo avendo sempre programmato in pascal non si avevano queste limitazioni sul char)

oregon
24-02-2009, 11:51
Originariamente inviato da simone1988
si infatti dopo 5 minuti che ho postato mi era venuto in mente(purtroppo avendo sempre programmato in pascal non si avevano queste limitazioni sul char)

Non sono "limitazioni" ma il modo di funzionare del C ...

Loading