Ciao a tutti,
dovrei creare una funzione che inserisce in una lista (lintA) i numeri primi contenuti in un'altra lista (lintT). Come prototipo della funzione vorrei usare TABR *insNPrimi(TABR *lista). Di seguito la prima parte del programma:
codice:
#include<stdio.h>
#include<stdlib.h>
typedef struct nd{
int val;
struct nd *next;
}TABR;
TABR *newLista();
TABR *addLista(TABR *lista, int num);
void printLista(TABR *lista);
int main(){
TABR *lintA;
TABR *lintT;
FILE *fp;
int num;
lintA=newLista();
lintT=newLista();
fp=fopen("dati.txt", "r");
while(fscanf(fp, "%d", &num)!=EOF){
lintT=addLista(lintT, num);
}
fclose(fp);
printf("\n Lista 'lintT':\n\n");
printLista(lintT);
printf("\n\n");
system("PAUSE");
return 0;
}
TABR *newLista(){
return NULL;
}
TABR *addLista(TABR *lista, int num){
TABR *temp;
TABR *i;
temp=(TABR *)malloc(sizeof(TABR));
if(temp==NULL){
printf("Errore di memoria!\n");
exit(-1);
}
else{
temp->val=num;
temp->next=NULL;
}
i=lista;
if(lista==NULL){
return temp;
}
else{
while(i->next!=NULL){
i=i->next;
}
i->next=temp;
return lista;
}
}
void printLista(TABR *lista){
if(lista==NULL){
printf("Lista vuota!\n");
}
else{
while(lista!=NULL){
printf("%4d", lista->val);
lista=lista->next;
}
}
}
Qualcuno sa dirmi come posso fare? Grazie mille