ricky_86
23-12-2008, 16:32
data la seguente definizione di tipo
typedef struct nd{
int val;
int nd *next;
int nd *max;
}TLISTA;
si deve costruire un programma in linguaggio C che:
1 definisca un vettore dinamico vettInt contenente numeri interi;
2 definisca una lista lInt di tipo TLISTA;
3 inserisca nel vettore vettInt i numeri interi contenuti in un file denominato dati.txt;
4 inserisca nella lista lInt i valori contenuti in vettInt facendo puntare un elemento al successivo attraverso il campo next ed utilizzando il campo max per far puntare ogni elemento della lista ad un altro elemento secondo il seguente criterio:
per ogni elemento x di lInt, max punta all'elemento di lInt che contiene il valore massimo tra tutti gli elementi lInt che precedono l'elemento x, elemento x incluso.
Quindi max del primo elemento di lInt punta all'elemento stesso; max del secondo elementodi lInt punta al più grande tra il primo e il secondo elemento di l'Int; max del terzo elemento di lInt punta al più grande tra il 1°, il 2° e il 3° elemento di lInt e così via.
io ho scritto
typedef struct nd {
int val;
struct nd* next;
struct nd* max;
}TLISTA;
TLISTA *crealista();
TLISTA *insertlista(TLISTA *, int);
int leggi(FILE *);
int main()
{
int vettInt*;
int a;
FILE *fp;
fp=fopen("dati.txt","r");
while(feof(fp)!=0)
{
a=leggi(fp);
}
fclose(fp);
system ("PAUSE");
return 0;
}
TLISTA *crealista(){
return NULL;
}
TLISTA *insertlista(TLISTA *l, int v){
TLISTA *t=(TLISTA*) malloc(sizeof(TLISTA));
if (t!=NULL){
t->val=v;
t->next=l;
return t;
}
else return l;
}
int leggi(FILE *fp)
{
int a;
fscanf(fp,"%d",&a);
return a;
}
però adesso non so cm passare a a vettInt
grazie mille a chiunque collabori
typedef struct nd{
int val;
int nd *next;
int nd *max;
}TLISTA;
si deve costruire un programma in linguaggio C che:
1 definisca un vettore dinamico vettInt contenente numeri interi;
2 definisca una lista lInt di tipo TLISTA;
3 inserisca nel vettore vettInt i numeri interi contenuti in un file denominato dati.txt;
4 inserisca nella lista lInt i valori contenuti in vettInt facendo puntare un elemento al successivo attraverso il campo next ed utilizzando il campo max per far puntare ogni elemento della lista ad un altro elemento secondo il seguente criterio:
per ogni elemento x di lInt, max punta all'elemento di lInt che contiene il valore massimo tra tutti gli elementi lInt che precedono l'elemento x, elemento x incluso.
Quindi max del primo elemento di lInt punta all'elemento stesso; max del secondo elementodi lInt punta al più grande tra il primo e il secondo elemento di l'Int; max del terzo elemento di lInt punta al più grande tra il 1°, il 2° e il 3° elemento di lInt e così via.
io ho scritto
typedef struct nd {
int val;
struct nd* next;
struct nd* max;
}TLISTA;
TLISTA *crealista();
TLISTA *insertlista(TLISTA *, int);
int leggi(FILE *);
int main()
{
int vettInt*;
int a;
FILE *fp;
fp=fopen("dati.txt","r");
while(feof(fp)!=0)
{
a=leggi(fp);
}
fclose(fp);
system ("PAUSE");
return 0;
}
TLISTA *crealista(){
return NULL;
}
TLISTA *insertlista(TLISTA *l, int v){
TLISTA *t=(TLISTA*) malloc(sizeof(TLISTA));
if (t!=NULL){
t->val=v;
t->next=l;
return t;
}
else return l;
}
int leggi(FILE *fp)
{
int a;
fscanf(fp,"%d",&a);
return a;
}
però adesso non so cm passare a a vettInt
grazie mille a chiunque collabori