Linux2004
29-11-2005, 15:44
Ho provato a compilare questo codice:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
typedef struct ListNode{
int data;
struct ListNode *nextPtr;
}ListNode;
typedef ListNode *ListNodePtr;
double averageList(ListNodePtr a);
void insert(ListNodePtr *sPtr, int value);
void printList(ListNodePtr currentPtr);
int main(){
ListNodePtr listPtr = NULL;
int i;
srand(time(NULL));
for(i = 1; i <= 25; i++) insert(&listPtr, rand()%100);
printf("The list is:\n");
printList(listPtr);
printf("The average is %f\n", averageList(listPtr));
return 0;
}
double averageList(ListNodePtr a){
int somma=0;
while(a->nextPtr != NULL){
somma += a->data;
a = a->nextPtr;
}
return somma/25;
}
void insert(ListNodePtr *sPtr, int value){
ListNodePtr newPtr;
newPtr = (ListNodePtr)malloc(sizeof(ListNode));
newPtr->data = value;
newPtr->nextPtr = NULL;
if(*sPtr == NULL) *sPtr = newPtr;
else{
while(sPtr->nextPtr != NULL) sPtr = sPtr->nextPtr;
sPtr->nextPtr = newPtr;
}
return;
}
void printList(ListNodePtr currentPtr){
while(currentPtr->nextPtr != NULL){
printf("%d ", currentPtr->data);
currentPtr = currentPtr->nextPtr;
}
return;
}
il compilatore che mi restituisce questo messaggio di errore:
Pointer to structure required on left side of -> or ->* in function insert
Grazie per l'aiuto! :)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
typedef struct ListNode{
int data;
struct ListNode *nextPtr;
}ListNode;
typedef ListNode *ListNodePtr;
double averageList(ListNodePtr a);
void insert(ListNodePtr *sPtr, int value);
void printList(ListNodePtr currentPtr);
int main(){
ListNodePtr listPtr = NULL;
int i;
srand(time(NULL));
for(i = 1; i <= 25; i++) insert(&listPtr, rand()%100);
printf("The list is:\n");
printList(listPtr);
printf("The average is %f\n", averageList(listPtr));
return 0;
}
double averageList(ListNodePtr a){
int somma=0;
while(a->nextPtr != NULL){
somma += a->data;
a = a->nextPtr;
}
return somma/25;
}
void insert(ListNodePtr *sPtr, int value){
ListNodePtr newPtr;
newPtr = (ListNodePtr)malloc(sizeof(ListNode));
newPtr->data = value;
newPtr->nextPtr = NULL;
if(*sPtr == NULL) *sPtr = newPtr;
else{
while(sPtr->nextPtr != NULL) sPtr = sPtr->nextPtr;
sPtr->nextPtr = newPtr;
}
return;
}
void printList(ListNodePtr currentPtr){
while(currentPtr->nextPtr != NULL){
printf("%d ", currentPtr->data);
currentPtr = currentPtr->nextPtr;
}
return;
}
il compilatore che mi restituisce questo messaggio di errore:
Pointer to structure required on left side of -> or ->* in function insert
Grazie per l'aiuto! :)