Ir ao conteúdo
  • Cadastre-se

Le a primeiro o primeiro char da struct mas nao lê o resto


Posts recomendados

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct bolota{
char nome[100];
int idade;
int numero;
};

main(){
struct bolota ficha[5];
int i , md=0;

for(i=0;i<5;i++){
		printf("NOME : ");
		gets(ficha[i].nome);
		
		printf("Idade : ");
		scanf("%d",&ficha[i].idade);
		printf("Numero : ");
		scanf("%d",&ficha[i].numero);
printf("------------------------------------------------------------\n");

md=ficha[i].idade+md;
}
md=md/5;
system("CLS");
for(i=0;i<5;i++){
printf("Nome:%s\nNumero:%d\nIdade:%d\n",ficha[i].nome , ficha[i].numero , ficha[i].idade);
printf("------------------------------------------------------------\n");
}
printf("a media das idade foi de : %d",md);
}

 

Link para o comentário
Compartilhar em outros sites

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct bolota {
    char nome[100];
    int idade;
    int numero;
};

void flush() {
    //funçao excelente para limpar o buffer de entrada.
    int ch;
    while ( ( ch = fgetc ( stdin ) ) != EOF && ch != '\n' ) {}
}

int main() {
    struct bolota ficha[5];
    int i, md = 0;
    
    for ( i = 0; i < 5; i++ ) {
        printf ( "NOME : " );
        scanf("%100[^\n]%*c", ficha[i].nome );
        
        printf ( "Idade : " );
        scanf ( "%d", &ficha[i].idade );
        printf ( "Numero : " );
        scanf ( "%d", &ficha[i].numero );
        printf ( "------------------------------------------------------------\n" );
        
        md = ficha[i].idade + md;
        flush(); //limpa buffer
    }
    
    md = md / 5;
    system ( "CLS" );
    
    for ( i = 0; i < 5; i++ ) {
        printf ( "Nome:%s\nNumero:%d\nIdade:%d\n", ficha[i].nome, ficha[i].numero, ficha[i].idade );
        printf ( "------------------------------------------------------------\n" );
    }
    
    printf ( "a media das idade foi de : %d", md );
}

você tem problema com lixo no buffer: deveria ler esse tema: http://forum.imasters.com.br/topic/336835-tutorial-systempause-e-fflushstdin/

 

Vai direto até a parte que diz: "O Problema... no buffer de entrada, limpa com fflush(stdin)."

Mas não use o fflush junto com stdin tá, não seja noobs, leia o tema e saiba p q falha seu programa. >_< Melhor ler tudo.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...