22/04/11 8:06
RapFan
Ciao a tutti!
Sto facendo un programmino che utilizza le liste per calcolare la media e la somma di 25 numeri generati casualmente
Ecco gli errori di compilazione
forse ho fatto casino con le typedef ma non capisco come...
Sto facendo un programmino che utilizza le liste per calcolare la media e la somma di 25 numeri generati casualmente
#include <stdio.h> #include <stdlib.h> #include <time.h> struct listNode { int casual; struct listNode *nextPtr; }; typedef struct listNode ListNode; typedef ListNode *ListNodePtr; int main(){ int contatore; //funge da indice e da dividendo float somma=0; //conterrà la somma dei numeri generati casualmente ListNodePtr startPtr = NULL; //puntatore all'inizio della lista (che è vuota) srand(time(NULL)); //randomizzazione ListNodePtr newPtr; //puntatore al nuovo nodo ListNodePtr previousPtr; //puntatore al nodo precedente ListNodePtr currentPtr; //puntatore al nodo corrente for(contatore=0; contatore<25; contatore++){ newPtr= malloc(sizeof(ListNode));// creo un nuovo nodo //c'è spazio a sufficenza per creare nodi? if(newPtr!=NULL){ newPtr->casual=rand()%99; //genero un numero e lo metto nel nodo somma += newPtr->casual; //aggiorno la somma previousPtr = NULL; currentPtr = *startPtr; //finché sono nella lista e il mio valore è maggiore di quello nel nodo attuale... while(currentPtr!=NULL && newPtr->casual > currentPtr->casual){ previousPtr=currentPtr; //...mi sposto al currentPtr= currentPtr->nextPtr;// nodo successivo }//fine ciclo while if (previousPtr==NULL){ //se mi trovo all'inizio della lista newPtr->nextPtr = *startPtr; //aggiungo il nodo *startPtr = newPtr;// all'inizio } else { //inserisco il nodo tra previousPtr e currentPtr previousPtr->nextPtr = newPtr; newPtr->nextPtr=currentPtr; } }//fine del ramo if else printf("Non riesco ad allocare memoria!\n"); }//fine ciclo for printf("La media di tutti i valori inseriti nei nodi è: %.2f\n", somma/contatore); printf("La somma di tutti i numeri inseriti nei nodi è: %f\n", somma); return 0; }//fine programma
Ecco gli errori di compilazione
mediaconlista.c: In function ‘main’: mediaconlista.c:37: error: incompatible types when assigning to type ‘ListNodePtr’ from type ‘ListNode’ mediaconlista.c:49: error: incompatible types when assigning to type ‘struct listNode *’ from type ‘ListNode’ mediaconlista.c:50: error: incompatible types when assigning to type ‘ListNode’ from type ‘ListNodePtr’
forse ho fatto casino con le typedef ma non capisco come...
Ultima modifica effettuata da RapFan 22/04/11 8:09
aaa