Ajuda em programa em C pra ontem

9 respostas
T

tenho urgencia, tenho q entregar esse trabalho hj e nao to acertando, na hora de apresentar as somas ele ta saindo 0, como se nao tivesse capturando por favor alguem me ajude, nao entendo pq ele nao apresenta os resultados, somente como 00

o enunciado é :

Faça um programa para ler:

Nome do atleta;
Sexo;
Altura;
Idade;
Peso.

a) O programa termina quando o nome for ?TCHAU?;
b) Calcule e somente ao final exiba:
- Média das idades das mulheres;
- Soma de todos os pesos;
- Total de mulheres com altura acima 1.65;
- Média de todos os pesos dos homens.

MEU CODIGO:
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<iomanip>

main()
{
      char nome[20], sexo[10];
      float altura, peso, media_idade, totalidade, soma_peso, tot_altm, media_pesoh, mtotalpeso, totalmulheres, totalh, totalpeso, pesoh, mediapesoh;
      int idade;
      
      
                                     
                                     printf("Digite o nome do atleta: ");
                                     scanf("%s", nome);
                                     while(strcmp(nome,"tchau")!=0) {
                                                                  
                                     printf("Digite o sexo F ou M   : ");
                                     scanf("%s", sexo);
                                     printf("Digite a altura        : ");
                                     scanf("%f", &altura);
                                     printf("Digite a idade         : ");
                                     scanf("%d", &idade);
                                     printf("Digite o peso          : ");
                                     scanf("%f", &peso);
                                     
                                     if (strcmp(sexo,"f")==0 && (altura > 1.65))
                                                      tot_altm++; 
                                     if (strcmp(sexo,"f")==0)
                                                              
                                                      totalidade = (totalidade + idade);
                                                      totalmulheres++; 
                                     if (strcmp(sexo, "m")==0 || strcmp(sexo, "f")==0)
                                                      totalpeso = (totalpeso + peso); 
                                     if (strcmp(sexo, "m")==0)
                                                      totalh++;
                                                      pesoh = pesoh + peso;    
                                          
                                                                                                  
                                     printf("\nDigite o nome do atleta: ");
                                     scanf("%s", nome);
                                     }
                                     
                                     media_idade = (totalidade / totalmulheres);
                                     mtotalpeso = (pesoh / totalh);
                                     
                                     
                                     printf("\nA media das idades das mulheres: %.2f", media_idade);
                                     printf("\nA soma de todos os pesos: %.2f", totalpeso);
                                     printf("\nTotal de mulher com altura acima de 1.65: %.2f", tot_altm);
                                     printf("\nMedia de todos os pesos masculinos: %.2f", mtotalpeso);
                                     
                                     getch();
      
      
      
      }

9 Respostas

J
if()

{

///comandos aqui dentro

}

Se não usar { }, o if só executa a primeira linha após ele

T
<blockquote><div class="quote-author">jarlisson:</div>if(…)

{

///comandos aqui dentro

}

Se não usar { }, o if só executa a primeira linha após ele

ja fiz isso e nao mudou em nada, ja tentei diversas formas mas continuou na msm, por isso corri pra ca, preciso entregar isso ate as 18h =/

diogozero
<blockquote><div class="quote-author">tobiii:</div><blockquote><div class="quote-author">jarlisson:</div>if(…)

{

///comandos aqui dentro

}

Se não usar { }, o if só executa a primeira linha após ele

ja fiz isso e nao mudou em nada, ja tentei diversas formas mas continuou na msm, por isso corri pra ca, preciso entregar isso ate as 18h =/
Em todos os IF’s?

J

Qual erro deu? Lixo? (valores loucos)
Essas variáveis que você não pediu por scanf, inicializa elas com 0

T
<blockquote><div class="quote-author">diogozero:</div><blockquote><div class="quote-author">tobiii:</div><blockquote><div class="quote-author">jarlisson:</div>if(…)

{

///comandos aqui dentro

}

Se não usar { }, o if só executa a primeira linha após ele

ja fiz isso e nao mudou em nada, ja tentei diversas formas mas continuou na msm, por isso corri pra ca, preciso entregar isso ate as 18h =/
Em todos os IF’s?

sim ja fiz em um por um, abrindo e fechando cada

J

Não estou podendo testar agora, mas a medida que for tentando, coloque o código e erro resultante.

T

jarlisson:
Qual erro deu? Lixo? (valores loucos)
Essas variáveis que você não pediu por scanf, inicializa elas com 0

Pow cara, vc acertou, inicializei elas em 0, agora o programa rodou perfeitamente, eu sabia q era bom inicializar sempre em 0, mas nao costumava fazer isso e nunca tive problemas, mas ao seguir sua dica tudo se resolveu, obrigado mesmo, a partir de hoje sempre inicializarei as variaveis sem valores, um problema bobo desse me dando tanta dor de cabeça =/

mais uma vez obrigado cara e obrigado tb a quem tentou me ajudar

abs :lol:

T

CODIGO FINAL:

#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<iomanip>

main()
{
      char nome[20], sexo[10];
      float altura=0, peso=0, media_idade=0, totalidade=0, soma_peso=0, tot_altm=0, media_pesoh=0, mtotalpeso=0, totalmulheres=0, totalh=0, totalpeso=0, pesoh=0, mediapesoh=0;
      int idade;
      
      
                                     
                                     printf("Digite o nome do atleta: ");
                                     scanf("%s", nome);
                                     while(strcmp(nome,"tchau")!=0) {
                                                                  
                                     printf("Digite o sexo F ou M   : ");
                                     scanf("%s", sexo);
                                     printf("Digite a altura        : ");
                                     scanf("%f", &altura);
                                     printf("Digite a idade         : ");
                                     scanf("%d", &idade);
                                     printf("Digite o peso          : ");
                                     scanf("%f", &peso);
                                     
                                     if (strcmp(sexo,"f")==0 && (altura > 1.65)){
                                                      tot_altm++; 
                                                      }
                                     if (strcmp(sexo,"f")==0) {
                                                              
                                                      totalidade = (totalidade + idade);
                                                      totalmulheres++; 
                                                      }
                                     if (strcmp(sexo, "m")==0 || strcmp(sexo, "f")==0) {
                                                      
                                                      totalpeso = (totalpeso + peso); 
                                                      }
                                     if (strcmp(sexo, "m")==0){
                                                      totalh++;
                                                      pesoh = pesoh + peso;    
                                                      }    
                                                      
                                                                                                  
                                     printf("\nDigite o nome do atleta: ");
                                     scanf("%s", nome);
                                     }
                                     
                                     media_idade = (totalidade / totalmulheres);
                                     mtotalpeso = (pesoh / totalh);
                                     
                                     
                                     printf("\nA media das idades das mulheres: %.2f", media_idade);
                                     printf("\nA soma de todos os pesos: %.2f", totalpeso);
                                     printf("\nTotal de mulher com altura acima de 1.65: %.2f", tot_altm);
                                     printf("\nMedia de todos os pesos masculinos: %.2f", mtotalpeso);
                                     
                                     getch();
      
      
      
      }
ViniGodoy

Por favor, não peça urgência no fórum.

Criado 1 de outubro de 2012
Ultima resposta 1 de out. de 2012
Respostas 9
Participantes 4