CODICE 1
#include <stdio.h>
#include <stdlib.h>
typedef unsigned short int Boolean;
#define TRUE 1;
#define FALSE 0;
//Dichiarazione di funzioni
void main(void);
void init(struct list* ptr, int size);
Boolean pre_insert(struct list*ptr, int value);
//Definizioni di funzioni
void main(void){
int grandezza, ins, num;
struct record {
int value;
int next;
};
struct list {
int first,free,size;
struct record *buffer;
};
struct list *ptr;
scanf("%d", &grandezza);
init(ptr, grandezza);
for(num=0; num<grandezza; num++){
scanf("%d", &ins);
pre_insert(ptr, ins);
}
void init(struct list *ptr, int size){
int count;
ptr->buffer=(struct record *)malloc(size*sizeof(struct record));
ptr->size=size;
ptr->first=ptr->size;
ptr->free=0;
for(count=0;count< ptr->size; count++)
ptr->buffer[count].next=count+1;
}
Boolean pre_insert(struct list *ptr, int value){
int moved;
if(ptr->free != ptr->size){
moved=ptr->free;
ptr->free=(ptr->buffer[ptr->free]).next;
ptr->buffer[moved].value=value;
ptr->buffer[moved].next=ptr->first;
ptr->first=moved;
return TRUE;
}
else
return FALSE;
}
}
CODICE 2
#include <stdio.h>
#include <stdlib.h>
struct list {
int value;
struct list* next_ptr;
};
struct list* ptr;
struct list** ptrptr;
int count,ins;
int sum=0;
void main(void);
void init(struct list** ptrptr);
void pre_insert(struct list** ptrptr, int value);
int it_sum(struct list* ptr);
void main(void){
init(ptrptr);
for(count=0; count<5; count++){
scanf("%d", &ins);
pre_insert(ptrptr, ins);
}
it_sum(*ptrptr);
printf("%d", sum);
}
void init(struct list **ptrptr){
*ptrptr=NULL;
}
void pre_insert(struct list** ptrptr, int value){
struct list* tmp_ptr;
tmp_ptr=*ptrptr;
*ptrptr=(struct list*)malloc(sizeof(struct list));
(*ptrptr)->value=value;
(*ptrptr)->next_ptr=tmp_ptr;
}
int it_sum(struct list* ptr){
while(ptr!=NULL){
if(ptr->value%2 == 1)
sum=sum+ptr->value;
ptr=ptr->next_ptr;
}
return sum;
}
Scusatemi ma mi sono appena iscritto..così va bene?
codice 1: Deve creare una lista collegata con arrays e indici e poi inserire in testa alla lista i numeri che ricevo da tastiera
codice 2: deve creare una lista collegata con puntatori e calcolare la somma dei dispari
Gli errori sono...per quanto riguarda il codice 1 questi:
Multiple markers at this line
- passing argument 1 of 'init' from incompatible pointer type [enabled by
default]
- riferimento non definito a "init"
e lo stesso errore me lo da anche per la funzione pre_insert
per quanto riguarda il codice 2 questi:
- definito qui per la prima volta
me lo mette accanto a tutte le definizioni delle funzioni
Comunque se non mi partono per un qualche motivo strano mi interessa il giusto..l'importante è che il codice sia scritto bene sennò quella mi boccia :S