I can not find the error in this code of my exercise. It prints right the first reading, then prints random things. I could not find out if the error is in the reading or the printing.
#include <stdio.h>
#include <stdlib.h>
/*Defina uma estrutura que irá representar bandas de música.
Essa estrutura deve ter o nome da banda, que tipo de música ela toca,
o número de integrantes e em que posição do ranking essa banda está dentre as suas 5 bandas favoritas.*/
#define TAM 2
typedef struct
{
char nome[20],tipo[15];
int integrantes,posicao;
}BANDAS[TAM];
int main()
{
BANDAS banda[TAM];
ler (&banda);
mostrar(banda);
return 0;
}
void ler (BANDAS *banda)
{
int i;
for (i=0;i<TAM;i++){
printf ("Diga qual o nome da banda: ");
gets(banda[i]->nome);
__fpurge(stdin);
printf ("Tipo de musica: ");
gets (banda[i]->tipo);
__fpurge (stdin);
printf ("Quantos integrantes tem a banda: ");
scanf ("%d",&banda[i]->integrantes);
__fpurge (stdin);
printf ("Posicao no seu top 5: ");
scanf ("%d",&banda[i]->posicao);
__fpurge (stdin);
}
}
void mostrar (BANDAS banda)
{
int i;
for (i=0;i<TAM;i++){
printf ("Nome: %s\n",banda[i].nome);
printf ("Tipo de musica: %s\n",banda[i].tipo);
printf ("Numero de integrantes: %d \n",banda[i].integrantes);
printf ("Posicao no seu TOP 5: %d \n",banda[i].posicao);
}
}
Am I wrong to read? How would that be right?