Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

phpricardo

Usando Struct em exercício linguagem C

Recommended Posts

Estou com seguinte problema nesse exercício, pois quando coloco para rodar e escolho a quantidade, vem na tela já pedindo Nome: Sexo: Idade.... ou seja, era para pedir primeiro o Nome, depois o Sexo e de pois Idade.... é o buffer acredito.

 

/* Escrever um algoritmo que leia os dados de “N” pessoas
(nome, sexo, idade e saúde) e informe se está apta ou não
para cumprir o serviço militar obrigatório. Informe os totais. */

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

struct Pessoa
{
    char nome[30];
    char sexo[1]; // M = Masculino e F = Feminino
    int idade;
    char saude[5];
};

main()
{

    int quant; // Quantidade de pessoas
    int i;

    printf("Digite a quantidade de pessoas: ");
    scanf("%d", &quant);

    struct Pessoa candidato[quant];

    for(i = 0; i < quant; i++)
    {
        printf("Nome: ");
        fgets(candidato[i].nome,30,stdin);

        printf("Sexo: ");
        fgets(candidato[i].sexo,1,stdin);

        printf("Idade: ");
        scanf("%d", &candidato[i].idade);

        printf("\nSaude: ");
        fgets(candidato[i].saude,5,stdin);

        if(candidato[i].idade >= 18 && candidato[i].saude == "boa")
        {
            printf("O %s, sexo %s com idade %d e com saude %s esta apto ao servico militar. \n\n",
                   candidato[i].nome, candidato[i].sexo, candidato[i].idade, candidato[i].saude);
        }
        printf("\n\n");

    } // fim do for

} // fim função main()

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Até onde eu sei o fflush não é portável. E eu tentei mesmo assim um pouco com ele, mas não funcionou 100%.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não estou te recomendando o fflush na entrada padrão. Colei o link p/ vc ler sobre como limpar o buffer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.