Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Programa que mostra porcentagem


jhonantan_soad

Pergunta

Tava resolvendo um exercicio de C aki em casa e o programa ta funcionando certinhu mas só q ele não ta me mostrando a porcentagem dele já tentei procurar por algum erro mas não conssegui achar. alguém poderia me ajudar?

Obrigado

#include <stdio.h>

int main()
{
    char nome[40],sexo;
    int idade=0,x=0,menor=0,maior=0,sexof=0,sexom=0;
    float ma,me;
    for(x=1;x<=2;x++)
    {
         printf("Digite o nome da pessoa entrevistada:\n");
         gets(nome);
         printf("Digite a idade da pessoa entrevistada:\n");
         scanf("%i",&idade);
         getchar();
         printf("Digite 'f' para feminino e 'm' para masculino:\n");
         sexo=getchar();
         getchar();
         if (sexo=='f')
         {
              sexof++;
              }
         else
         {
              sexom++;
              }
         if (idade<=17)
         {
              menor++;
                   }
         else
         {
              maior++;
              }
    }
    ma=(maior*2)/100;
    me=(menor*2)/100;
    printf("O numero de homens é %i.\n",sexom);
    printf("O numero de mulheres é %i.\n",sexof);
    printf("O numero de pessoas maiores de idade é %i.\n",maior);
    printf("O numero de pessoas menores de idade é %i.\n",menor);
    printf("A porcentagem de pessoas maiores de idade é %.2f.\n",ma);
    printf("A porcentagem de pessoas menores de idade é %.2f.",me);
    getchar();
    return(0);
}

Editado por Jonathan Queiroz
Título editado para descrever melhor o tópico e adcionar tag's (Jonathan)
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Olá jhonantan_soad,

Atente-se ao fato de que operações entre inteiros, sempre resultam em inteiros,

então você precisa fazer a conversão (casting) de alguns tipos de dados, além do que, acho que o cálculo da porcentagem está errado,

tente fazer:

ma = ( (float)maior / 2.0 ) * 100.0;
me = ( (float)menor / 2.0 ) * 100.0;

ps*: não é necessário a conversão de todos os operandos para ponto flutuante, apenas acho que o código fica mais legível

Abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...