ragazzi qualcuno di voi lo sa fare mi sono bloccato
Il seguente codice crea il file 'archivio' composto da una sequenza di
strutture con un campo 'numeri' (array di 4 interi) e un campo 'nome'
(stringa di 64 caratteri incluso il terminatore nullo).
I quattro interi dell'array 'numeri' sono nell'ordine ascissa e ordinata
dei due vertici opposti di un rettangolo di cui bisogna calcolare l'area.
I 63 caratteri significativi della stringa 'nome' servano a costruire
una nuova stringa 'nuovonome' in cui i caratteri di 'nome' risultino
ordinati e convertiti in maiuscolo se vocali.
Creare una struttura che abbia un campo intero 'area' e un campo 'nuovonome',
con i contenuti descritti.
Queste strutture siano salvate in un file 'finale' che risulti ordinato
rispetto al campo 'area'.
Il seguente codice crea il file 'archivio' composto da una sequenza di
strutture con un campo 'numeri' (array di 4 interi) e un campo 'nome'
(stringa di 64 caratteri incluso il terminatore nullo).
I quattro interi dell'array 'numeri' sono nell'ordine ascissa e ordinata
dei due vertici opposti di un rettangolo di cui bisogna calcolare l'area.
I 63 caratteri significativi della stringa 'nome' servano a costruire
una nuova stringa 'nuovonome' in cui i caratteri di 'nome' risultino
ordinati e convertiti in maiuscolo se vocali.
Creare una struttura che abbia un campo intero 'area' e un campo 'nuovonome',
con i contenuti descritti.
Queste strutture siano salvate in un file 'finale' che risulti ordinato
rispetto al campo 'area'.
Codice:
*/
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define STRINGALEN 63
typedef
struct
{
int numeri[4];
char nome[STRINGALEN+1];
}
t_dato;
typedef
struct{
int area;
char nuovonome[STRINGALEN+1];
}
f_dato;
typedef struct lista
{
f_dato
}
int prepara_input()
{
FILE *f;
int i,k,n;
t_dato x;
srand(time(0));
n = 500+rand()%500;
f = fopen("archivio","wb");
if (f)
{
for(i=0;i<n;i++)
{
for (k=0;k<4;k++)
x.numeri[k]=rand()%100;
for (k=0;k<STRINGALEN;k++)
x.nome[k]=97+rand()%26;
x.nome[STRINGALEN]='\0';
fwrite(&x,sizeof(t_dato),1,f);
}
fclose(f);
return 0;
}
else
return 1;
}
int main()
{
int ok;
ok=prepara_input();
if (ok)
printf("File non creato.\n");
return 0;
}
[code]