Ir ao conteúdo
  • Cadastre-se

C codigo em C esta apresentando alguns erros quando tento compila-lo


afcdfilho

Posts recomendados

Bom dia, meu codigo em C esta apresentando alguns erros quando tento compila-lo e não estou conseguindo corrigi-los, poderiam me ajudar? 

#include <stdio.h>

struct peso{
    int nome[30];
    float peso;
};

int main(void)
{
    struct peso     dados[5];
    float             media=0;
    int             i=1, cant=0;

    for(i=0;i<5;i++)
    {
        printf("\nNome: ");
        gets(dados[i] .nome);
        printf("\nPeso: ");
        printf("%f",&dados[i] .peso);
        media+=dados[i] .peso;
    }

    media=media/5;

    for(i=0;i<5;i++)
    {
        if(dados[i].peso>media)
        {
            printf("%s está acima do peso médio\n",dados[i].nome);
            cant++;
        }
    }    
    printf("%d pessoas estão acima do peso médio", cant);
}

 

Link para o comentário
Compartilhar em outros sites

Qual o erro que esta dando..vi 2 coisas estranhas...

 

10 minutos atrás, afcdfilho disse:
struct peso{
    int nome[30];
    float peso;
};

na struct nome como int... não seria char?

 

9 minutos atrás, afcdfilho disse:
for(i=0;i<5;i++)
    {
        printf("\nNome: ");
        gets(dados[i] .nome);
        printf("\nPeso: ");
        printf("%f",&dados[i] .peso);
        media+=dados[i] .peso;
    }

nesse bloco tem um espaco entre o colchetes e variavel do struct... 

Link para o comentário
Compartilhar em outros sites

@afcdfilho  deve ser isso mesmo que o @bngomes disse sobre a variavel que voce está declarando.

 

voce declarou uma variavel do tipo int (que é usado para numeros) mas está querendo receber um texto (que seria um nome).

 

Tenta alterar de int para string, por que o char talvez não de certo tambem devido ao tamanho do valor que se espera receber.

 

Então voce altera de "int nome [30]" para "string nome [30]".

Link para o comentário
Compartilhar em outros sites

@bngomes Troquei pelo scanf em algumas partes e deu certo, obrigado novamente. Agora o meu problema é parte final, consegue me ajudar?

Eu tinha colocado primeiramente assim:

3 horas atrás, afcdfilho disse:
    for(i=0;i<5;i++)
    {
        if(dados[i].peso>media)
        {
            printf("%s está acima do peso médio\n",dados[i].nome);
            cant++;
        }
    }    
    printf("%d pessoas estão acima do peso médio", cant);
}

Mas como eu preciso que ele retorne nessa ordem:

“x pessoas estão acima”

“As pessoas estão acima sao:

Pessoa y

Pessoa z"

 Tentei inverter assim:

 for(i=0;i<5;i++)
    {
        if(dados[i].peso>media)
        {
    printf("%d pessoas estão com o peso acima da média", cant);
}
        {
            printf("%s\n",dados[i].nome);
            cant++;
        }

 

Mas não rodou, conseguiria me ajudar?

Link para o comentário
Compartilhar em outros sites

toda vez que algume passar da media voce inclementa...

ai voce vai ter o total.. e sempre que alguém passar imprime o nome dela tela.

4 horas atrás, afcdfilho disse:
 for(i=0;i<5;i++)
    {
        if(dados[i].peso>media)
        {
            printf("%s está acima do peso médio\n",dados[i].nome);
            cant++;
        }
    }    
    printf("%d pessoas estão acima do peso médio", cant);

Como feito aqui... não tem como saber a quantidade primeiro pra depois imprimir o nome... a não ser que voce crie um segundo array com os indices do que passaram do peso e depois desse o print desse array

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!