Problema esercizio c (strutture,funzioni)

di
Anonimizzato6437
il
1 risposte

Problema esercizio c (strutture,funzioni)

Ho un problema con un programma questa e la consegna:

Si vuole scrivere un programma C per la gestione dell’archivio degli utenti di un negozio di musica online. In particolare, i dati da mantenere per ciascun utente in ogni lista sono i seguenti:
- Cognome
- Nome
- Città di residenza
- Indirizzo e-mail
- Genere musicale preferito (rock, pop, italiana, jazz, blues, new age, melodica, classica)
Dopo aver definito una struttura dati (struct utente) idonea a mantenere le informazioni richieste, scrivere un programma che consenta di riempire un vettore di N utenti e richiesto uno specifico genere musicale, visualizzi gli indirizzi e-mail di tutti gli utenti aventi quel genere musicale come genere preferito.

Il programam che ho fatto invece e questo mi da un sacco di errori che nn capisco come faccio a coregere (sono ancora un principiante con le strutture e le funzioni)
#include<stdio.h>
#include<ctime>
#include<conio.h>
#include<stdlib.h>

void leggi(archivio*a, int n);
void cerca(archivio*a,int n);

int main(){
int n,i; 
char genere;   
typedef struct archivio{
                        char cognome[10][20];
                        char nome[10][20];
                        char residenza[10][20];
                        char email[10][10];
                        char generemusicale[10][10];
                        };

archivio a[10];

printf("\n\t\tQUANTI DATI VUOI INSERIRE(max10): ");
scanf("%d",&n);

leggi(a,n);    

system("cls");

printf("Inserisci il genere musicale da cercare: ");
scanf("%s",&genere);
 
cerca(a,n); 
 
                         
                            
getch();

}


void leggi(archivio*a, int n){
int i;

for(i=0;i<n;i++){
printf("\n\t\tNOME: ");                 
gets(a.nome[i]);
                     
printf("\n\t\tCOGNOME: ");                 
gets(a.cognome[i]);

printf("\n\t\tRESIDENZA: ");                 
gets(a.residenza[i]);

printf("\n\t\tEMAIL: ");                 
gets(a.email[i]);

printf("\n\t\tGENERE: ");                 
gets(a.generemusicale[i]);
}


void cerca(archivio*a, int n){
int i;

for(i=0;i<n;i++){

if((strcmp(generemusicale,genere)==0)){
puts(a.email[i]);
}}}                                                        
                      
graize :>

1 Risposte

  • Re: Problema esercizio c (strutture,funzioni)

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    struct archivio
    {
           char cognome[20],nome[20],residenza[20],email[20],generemusicale[20];
    };
    void leggi(struct archivio[],int);
    void cerca(struct archivio[],int,char[]);
    main()
    {
          struct archivio elenco[100];
          int n;
          char genere[20];
          
          printf("Quanti dati vuoi inserire: ");
          scanf("%d",&n);
          
          leggi(elenco,n);
          system("cls");
          
          printf("Inserisci il genere musicale da cercare: ");
          fflush(stdin);
          scanf("%s",&genere);
          
          cerca(elenco,n,genere);
          system("pause");
          return 0;
    }
    void leggi(struct archivio elenco[],int n)
    {
         int i;
         for(i=0; i<n; i++)
         {
                  system("cls");
                  printf("inserisci nome: ");
                  fflush(stdin);
                  scanf("%s",&elenco[i].nome);
                  
                  printf("inserisci cognome: ");
                  fflush(stdin);
                  scanf("%s",&elenco[i].cognome);
                  
                  printf("inserisci residenza: ");
                  fflush(stdin);
                  scanf("%s",&elenco[i].residenza);
                  
                  printf("inserisci e-mail: ");
                  fflush(stdin);
                  scanf("%s",&elenco[i].email);
                  
                  printf("inserisci genere musicale: ");
                  fflush(stdin);
                  scanf("%s",&elenco[i].generemusicale);
         }          
    }
    void cerca(struct archivio elenco[],int n,char genere[])
    {
         int i;
         for(i=0; i<n; i++)
         {
                  if(strcmp(elenco[i].generemusicale,genere)==0)
                  {
                   fflush(stdin);
                   printf("Nome: %s \tE-mail: %s\n",elenco[i].nome,elenco[i].email);
                  }
         }
    }
Devi accedere o registrarti per scrivere nel forum
1 risposte