PROBLEMA linguaggio c aiuto

Pubblicità

beldak

Nuovo Utente
Messaggi
12
Reazioni
0
Punteggio
25
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'.
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]
 
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'.
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]
Ciao, ti ho messo io il tag code, ma non ho capito non trovi la soluzione? Oppure non hai idea di come gestirti le stringhe in c? Il codice che hai messo è tuo?
 
Pubblicità
Pubblicità
Indietro
Top