Ir ao conteúdo

Posts recomendados

Postado

Quando excecuto esse programa ele faz tudo com exceção da última linha. Se eu colocar mais comandos todos funcionam, mas a última linha sempre dá Segmentation fault.

Podem me ajudar?

//Faça um programa que receba a idade e o peso de 7 pessoas . Calcule e mostre: A quantidade de pessoas com mais de 90 quilos; A média das idades das sete pessoas.
#include <stdio.h>
#define num_pessoas 7
    typedef struct
    {
        int idade;
        float peso;
        } Pessoa;
    
    int main ()
    {
        Pessoa qtp[num_pessoas - 1];
        int i, quant_acima90 = 0, soma = 0;
        float media;
        for (i = 0; i < num_pessoas; i++)
        {
            printf ("Informe a idade da %d° pessoa: ", i+1);
            scanf ("%d", &qtp.idade);
            printf ("Informe o peso da %d° pessoa: ", i+1);
            scanf ("%f", &qtp.peso);
            printf ("\n");
            soma += qtp.idade;
            if (qtp.peso > 90)
            {
                quant_acima90 ++;
            }
            }
            media = soma/num_pessoas;
            printf ("%d pessoas estão acima de 90Kg.", quant_acima90);
            printf ("\nA media das idades das pessoas e: %.2f", media);
return (0);
    }

 

Postado
3 horas atrás, KXSY disse:

Você reparou que você está usando o endereço do primeiro ponteiro da matriz para pegar as informações?

isso está errado é a maioria dos compiladores não aceitaria compilar essa sentença.

Aqui o programa "funcionando".

  Mostrar conteúdo oculto


//Faça um programa que receba a idade e o peso de 7 pessoas . Calcule e mostre: A quantidade de pessoas com mais de 90 quilos; A média das idades das sete pessoas.
#include <stdio.h>
#define num_pessoas 7
    typedef struct
    {
        int idade;
        float peso;
        } Pessoa;
    
    int main ()
    {
        Pessoa qtp[num_pessoas - 1];
        int i, quant_acima90 = 0, soma = 0;
        float media;
        for (i = 0; i < num_pessoas; i++)
        {
            printf ("Informe a idade da %d° pessoa: ", i+1);
            scanf ("%d", &qtp[i].idade);
            printf ("Informe o peso da %d° pessoa: ", i+1);
            scanf ("%f", &qtp[i].peso);
            printf ("\n");
            soma += qtp[i].idade;
            if (qtp[i].peso > 90)
            {
                quant_acima90 ++;
            }
        }
            media = soma/num_pessoas;
            printf ("%d pessoas estão acima de 90Kg.", quant_acima90);
            printf ("\nA media das idades das pessoas e: %.2f", media);
return (0);
    }

 

Qual seria a sua intenção por optar usar um vetor ao invés de uma variável?

 

O que significa esse -1?

 

Você usa um IDE ou alguma coisa para compilar o código?

 

Na verdade, parece que ocorreu um erro quando colei, porque eu coloquei o 

qtp[i].idade

 quando estava fazendo, mas quando colei aqui ele apagou 😕 minha dúvida na verdade é que estou colocando assim, mas ainda dá segmentation fault. Obrigado!

3 horas atrás, KXSY disse:

Você reparou que você está usando o endereço do primeiro ponteiro da matriz para pegar as informações?

isso está errado é a maioria dos compiladores não aceitaria compilar essa sentença.

Aqui o programa "funcionando".

  Mostrar conteúdo oculto


//Faça um programa que receba a idade e o peso de 7 pessoas . Calcule e mostre: A quantidade de pessoas com mais de 90 quilos; A média das idades das sete pessoas.
#include <stdio.h>
#define num_pessoas 7
    typedef struct
    {
        int idade;
        float peso;
        } Pessoa;
    
    int main ()
    {
        Pessoa qtp[num_pessoas - 1];
        int i, quant_acima90 = 0, soma = 0;
        float media;
        for (i = 0; i < num_pessoas; i++)
        {
            printf ("Informe a idade da %d° pessoa: ", i+1);
            scanf ("%d", &qtp[i].idade);
            printf ("Informe o peso da %d° pessoa: ", i+1);
            scanf ("%f", &qtp[i].peso);
            printf ("\n");
            soma += qtp[i].idade;
            if (qtp[i].peso > 90)
            {
                quant_acima90 ++;
            }
        }
            media = soma/num_pessoas;
            printf ("%d pessoas estão acima de 90Kg.", quant_acima90);
            printf ("\nA media das idades das pessoas e: %.2f", media);
return (0);
    }

 

Qual seria a sua intenção por optar usar um vetor ao invés de uma variável?

 

O que significa esse -1?

 

Você usa um IDE ou alguma coisa para compilar o código?

Eu uso o IDE cxxdroid da playstore e o "-1" era para o vetor ter 1 a menos do número de pessoas já que conta a partir do 0. Eu usei o vetor porque queria experimentá-lo, achei que seria melhor que uma variável caso precisasse aumentar o número de pessoas.

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!