Ir ao conteúdo

Ajuda em programa em C que leia a idade e o sexo de várias pessoas


Ir à solução Resolvido por Leo Almeida,

Posts recomendados

Postado

Por favor, preciso de ajuda para criar um programa em C que leia a idade e o sexo (0-masculino, 1-feminino) de várias pessoas. O programa deve calcular e imprimir a idade média, o total de pessoas do sexo feminino com idade entre 30-45 (inclusive) e o número total de pessoas do sexo masculino. O programa termina quando o usuário digitar um número não positivo (0 ou um número negativo) para a idade. 

O programa precisa ser em C, mas eu não faço nem ideia de por onde começar. Preciso de ajuda. Agradeço desde já!

Postado

Se você não tinha nada de útil para ajudar, nem precisava se dar ao trabalho de responder esse tópico. 

Postado

@Alasca,

Se você não sabe nem como começar, então você não sabe programar ou então não entendeu o que o problema pede.

A parte da programação é elementar e não exige muita coisa além de saber operações de soma/divisão, loop e else/if. Se você não sabe esse tipo de coisa, o melhor a fazer é procurar uma apostila na web ou um livro para você aprender a programar.

Postado

@Alasca calma, aqui discutimos a linguagem, coisa que você ainda não entendi, apenas estou dizendo a você que procura aprender o básico. E desculpar me por nada, e você tem razão não sou professor cursinho iniciante.

Postado

Bom, só abri o tópico para caso houvesse algum membro que realmente tivesse algum algum interesse em ajudar (não me dar um código pronto, mas ajudar principalmente com a sintaxe, ainda não estou muito certa de onde usar: %c; %d; %i; f%; x%, etc.).

Ninguém nasce já sabendo a programar, e é por isso que eu estou tentando aprender, seja com algumas apostilas que eu estou lendo ou com vídeo-tutoriais que estou assistindo.

Só acho que vocês não precisavam ter perdido o tempo de vocês me falando algo tão óbvio: que eu tenho que começar pelo básico. Isso eu já estou fazendo. 

Postado

Recomendar as operações e as instruções necessárias, não deixa de ser uma ajuda principalmente para que diz não saber nem por onde começar.

Mas se sua dúvida é realmente sobre sintaxe ou os caracteres especiais, então isso só reforça a necessidade de procurar uma boa referência para esclarecer essa dúvida. Ou então você deve especificar melhor a dúvida.

Aqui você vai encontrar mais informações

http://www.cplusplus.com/reference/cstdio/printf/

  • Solução
Postado

Se isto te irá ajudar...

#include <stdio.h>

int main()

{

int idade, sexo;

int numMulher=0, numHomem=0, idadeTotal=0;

int numPessoa=0;

int a;

while(a>0)

{

puts("\nEntre com a idade: ");

scanf("%d", &idade);

do

{

puts("\n\nEntre com o sexo: ");

scanf("%d", &sexo);

}while(sexo!=1 && sexo!=0);

idadeTotal+=idade;

numPessoa++;

if(sexo==1 && idade >30 && idade<45)

{

numMulher++;

}

else

numHomem++;

printf("Deseja continuar? Caso nao ensira um numero <= 0 zero.\n");

scanf("%d", &a);

}

printf("\nA idade media e' %d.", idadeTotal/numPessoa);

printf("\nO total de mulheres de 35 aos 45 anos e' %d.", numMulher );

printf("\nO numero de homens e' %d\n\n", numHomem);

}

Postado

Estou postando o resultado se ajudar , só é preciso mudar algumas coisa de sintaxe com a sintaxe de impressão na tela pois fiz em C#

 

Estamos aqui para te ajudar.

 

 int idade = 0;
            int sexo = 0;
           
            int totalPessoasMasculino = 0;
            int totalPessoasFeminino = 0;
 
 
            while ((idade != -1 || idade != 0))
            {
 
                Console.Write("Digite a idade:  ");
                idade = Convert.ToInt32(Console.ReadLine());
               
                //Finaliza se a idade for -1 ou 0
                if (idade == -1 || idade == 0)
                {
                    break;
                }
 
                Console.Write("Digite o sexo [0] Masculino [1] Feminino:  ");
                sexo = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("");
 
                if (sexo == 0)
                    totalPessoasMasculino = totalPessoasMasculino + 1;
                
                if (sexo == 1 && (idade > 29 &&  idade < 46))
                   totalPessoasFeminino = totalPessoasFeminino + 1;
                
            }
 
            Console.WriteLine("");
            Console.WriteLine("==================RESUMO========================");
            Console.WriteLine("Masculinos = " + totalPessoasMasculino );
            Console.WriteLine("Femininos entre 30 e 45 anos = " + totalPessoasFeminino);
Postado

Na verdade já tinha conseguido resolver.

 

Mas, muito obrigada @Leo Almeida e @PHSS pela ajuda.

 

Abraço.

 

O meu código ficou assim:

 

#include<stdlib.h>#include<stdio.h>int main(){    int idade, sexo, soma_idade=0, qtd_pessoas=0, qtd_fem_30a45=0, qtd_masc=0;    float media;    printf("Informe idade [0 para encerrar]: ");    scanf("%d", &idade);    while (idade != 0)    {        printf("Informe sexo da pessoa [0 - Masculino / 1 - Feminino]: ");        scanf("%d", &sexo);        soma_idade += idade;        qtd_pessoas++;        if (sexo == 0)            qtd_masc++;        else if ((idade >= 30) && (idade <= 45))            qtd_fem_30a45++;        printf("Informe idade [0 para encerrar]: ");        scanf("%d", &idade);    }    media = (float) soma_idade / qtd_pessoas;    printf("Media das idades: %.2f\n", media);    printf("Quantidade de pessoas do sexo feminino com idade entre 30-45: %d\n", qtd_fem_30a45);    printf("Quantidade de pessoas do sexo masculino: %d\n", qtd_masc);    system("pause");    return 0;}
  • 5 anos depois...
Postado

bom dia pesoal estou com um problema aqui preciso criar um programa em c que: o usuário entre com o nome, idade, sexo e
4 notas de um aluno e o programa imprima os dados digitados. e O programa deve imprimir a média e o desvio padrão das notas ao final, eu tentei aqui mas nao consigo digitar o resto das informaçoes so o nome, se tiver alguem ai que manje um pouco pode me ajudar

#include <stdio.h>


main()

   
  int nome, idade, sexo, nota;

       
                
                        
                
                printf("\ndigite o nome do aluno: ");
                scanf("%i" ,&nome);
            
                printf("\ndigite a idade do aluno: ");
                scanf("%n", & idade);
                             
                printf("\nInforme o sexo do aluno: ");
                scanf("%f", & sexo);
                
                printf("\ndigite a nota 1 do aluno: ");
                scanf("%f", & nota);
                
                printf("\ndigite a nota 2 do aluno: ");
                scanf("%f", & nota);
                
                printf("\ndigite a nota 3 do aluno: ");
                scanf("%f", & nota);
            
                printf("\ndigite a nota 4 do aluno: ");
                scanf("%f", & nota);
        

      
       
               
        
        return 0;
}
 

  • 4 semanas depois...
Postado

@PHSS

@PHSS porque você colocou Convert.int32 para uma variavel que ja estava declarada como inteiro

esse é o meu:

/*4 – Faça um algoritmo que receba a idade e o sexo de 12 pessoas, calcule e mostre: 

• A idade média do grupo; 

• A idade média das mulheres; 

• A idade média dos homens.*/

using System;

 

class MainClass{

    public static void Main(string[] args){

 

          int idadeHomem, mediaHomem=0, num, contHomem=0, contMulher=0, idadeMulher, mediaMulher=0 ;

          char sexo;

 

          for(num=0;num<12;num++){

              Console.Write("Digite o genero do grupo...:");

              sexo = char.Parse(Console.ReadLine().ToUpper());

 

              if(sexo=='M'){

                  Console.Write("Digite uma idade do homem...: ");

                  idadeHomem=int.Parse(Console.ReadLine());

                  mediaHomem=mediaHomem+idadeHomem;

                  contHomem++;

                }else if(sexo=='F'){

                    Console.Write("Digite uma idade da mulher...: ");

                    idadeMulher=int.Parse(Console.ReadLine());

                    mediaMulher=mediaMulher+idadeMulher;

                    contMulher++;

                    

                }if(sexo!='M'&&sexo!='F'){

                    Console.WriteLine("comando invalido");

                }

          }

                

      Console.WriteLine("A media do grupo.......:{0}", (mediaHomem+mediaMulher)/(contHomem+contMulher));

      Console.WriteLine("A media de idade de um grupo de homens...: {0}", mediaHomem/contHomem);

      Console.WriteLine("A media de idade de um grupo de mulheres...: {0}", mediaMulher/contMulher);

 

         

    }

}

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!