|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Feb 2005
Messaggi: 162
|
[c]correzione esercizi
1) data la seguente struttura dovevo implementare una funzione per calcolare
la media dei voti(si suppone che la lista sia riempita) Codice:
Struct NodoLista{ int voto; Struct NodoLista*nextPtr; }; int media(NodoListaPtr) { int somma,media; somma=media=cont=0; /*controllo se la lista è vuota*/ if(currentPtr==NULL){ printf("la lista è vuota\n\n"); } else{ while(currentPtr!=NULL){ somma=somma+current->nextPtr; cont=cont++; media=somma\cont; } } return media; 2)secondo voi cosa dovrebbe fare questa funzione? Codice:
void vettstampa(int b[],int size){ if(size>0){ vettstampa(&b[1],size-1); printf("%d",b[0]); stampandolo(è una funzione ricorsiva), finche size sarà >di 0 ![]() odio i compiti corretti senza mettere le soluzioni...cosi non insegni un caxxo |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Aug 2004
Messaggi: 156
|
Nel primo esrcizio oltre a non aver dichiarato qualche variabile mi pare che il ciclo che calcola la media sia sbagliato
ammettendo che in currentPtr ci sia una copia della tasta della lista io avrei fatto così Codice:
while(currentPtr!=NULL){ somma=somma+currentPtr->voto; currentPtr = curentPtr->nextPtr; cont=cont++; } media=somma/cont; |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Codice:
Struct NodoLista{ int voto; Struct NodoLista*nextPtr; }; int media(NodoListaPtr) { int somma,media; somma=media=cont=0; int somma = 0, count = 0, media = 0; Codice:
/*controllo se la lista è vuota*/ if(currentPtr==NULL){ printf("la lista è vuota\n\n"); } else{ l'eserizio dice che è sempre piena ? mettici una assert () cosi ti copri le spalle. Codice:
while(currentPtr!=NULL){ somma=somma+current->nextPtr; se il valore del nodo sta in voto dovevi usare current->voto. Ultima cosa qui puoi usare l'operatore += cosi eviti di scrivere due volte somma ![]() Codice:
cont=cont++; media=somma\cont; } } return media; fare return somma / count; Qui poi si puo anche paralre del tipo di ritorno della funzione. Visto che quasi sicuramente la media avra dei decimali potresti voler usare double o float come tipo di ritorno invece di int e usare return (double)somma/count; ciao ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:08.