Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

#farias

[Resolvido] Médias erradas

Recommended Posts

aparentemente o codigo ta certo mais não está depende da ordem que você adiciona os dados preciso de uma solução quem souber por favor me diga obrigado!!!!

 

#include <cstdlib>
#include <iostream>
   
using namespace std;

int main(int argc, char *argv[])
{
   int cont,num,conth,contm;
   float altura,alturah,alturam,mediam,mediah,alturamaior1,alturamenor1,alturamaior2,altu
ramenor2;		   
  
   cont = 0;
   alturamenor1 =2.0; 
   alturamaior1 = 1.0;
   alturamenor2 =2.0; 
   alturamaior2 = 1.0;
   alturah = 0.0;
   alturam = 0.0;
   conth =0;
   contm = 0;
	
   cout<<"1-MASCULINO 2-FEMININO\n";
   cin>>num; 
   cout<<"Digite o altura \n";
   cin>>altura;

   while (cont <= 2)
   {		 
	  if ( num == 1)
		  {  
			alturah = alturah + altura;
			conth = conth + 1;		 
		   
			if (altura > alturamaior1) 
			   alturamaior1 = altura;
			
			if (altura < alturamenor1) 
			   alturamenor1 = altura;	 
		  }
	  
	  if (num == 2 )
		  { 
			  alturam = alturam + altura; 
			  contm = contm + 1;
			
			if (altura > alturamaior2) 
				alturamaior2 = altura;
			
			if (altura < alturamenor2) 
				alturamenor2 = altura; 
		  }		   
		  
   cout<<"1-MASCULINO 2-FEMININO\n"; 
   cin>>num;
   cout<<"Digite o altura \n";
   cin>>altura;
   cont++;
   }
	  
  if (  alturamaior1 > alturamaior2){
	  cout<<"MAIOR ALTURA---> "<<alturamaior1;		  
	  cout<<"\n ";
	  }
  else{
	  cout<<"MAIOR ALTURA---> "<<alturamaior2; 
	  cout<<"\n ";
	  }
  if (alturamenor1 <alturamenor2){
	  cout<<"MENOR ALTURA---> "<< alturamenor1; 
	  cout<<"\n ";
	  }
  else{ 
	  cout<<"MENOR ALTURA---> "<<alturamenor2;
	  cout<<"\n ";
	  }
	  
   mediah = alturah/conth;   
   mediam = alturam/contm;	

   cout<<"MEDIA MULHER---> "<<mediam;
   cout<<"\n ";
   cout<<"MEDIA HOMEM---> "<<mediah; 
   cout<<"\n ";   
   
system("PAUSE"); 
return EXIT_SUCCESS;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sempre que usar números decimais coloque ponto "." no lugar de vírgula ",".

Veja se resolve.

 

Por exemplo:

 

alturah = 0.0;
   alturam = 0.0;
   conth = 0;
   contm = 0;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sempre que usar números decimais coloque ponto "." no lugar de vírgula ",".

Veja se resolve.

 

Por exemplo:

 

alturah = 0.0;
   alturam = 0.0;
   conth = 0;
   contm = 0;

Grande obrigado pela tentativa mas não deu certo se você pegar o código e testar os valores 1=2,1 1=1,9

2=1,8 2=1,5 os valores vão dar errado alguns certos outros errados se você puder tirar essa duvida agradeço valeus

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tentou entrar com valores com ponto.

ex:

ao invez de 1,8 tentow 1.8 ??

 

como disse o amigo Kandrade qnd c trabalha com float se meche com '.' e nao com ','

 

volte a postar caso o erro persista

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tentou entrar com valores com ponto.

ex:

ao invez de 1,8 tentow 1.8 ??

 

como disse o amigo Kandrade qnd c trabalha com float se meche com '.' e nao com ','

 

volte a postar caso o erro persista

Grande é o seguinte já usei ponto no algoritmo e só alguns valores dão certo dependendo das entradas se você puder rodar na sua máquina você vai ver que naum dá correto sempre preciso saber o que tá acontecendo , apesar de eu ser iniciante esse problema n é um problema difícil mas tô sem livro , por sinal se você souber onde baixar livro gratuitamente me diz ai por favor ouvi falar num tal de bangalo ou algo parecido obrigado pela atenção

Dá uma testada no código que você vai ver com numeros decimai tá

ok até mais

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha como eu alterei, veja c isso resolve seu problema... abaixo do programa eu falo oq alterei.

#include <cstdlib>
#include <iostream>
   
using namespace std;

int main(int argc, char *argv[])
{
   int cont,num,conth,contm;
   float altura,alturah,alturam,mediam,mediah,alturamaior1,alturamenor1,alturamaior2,altu
ramenor2;		   
  
   cont = 0;
   alturamenor1 =2.0; 
   alturamaior1 = 1.0;
   alturamenor2 =2.0; 
   alturamaior2 = 1.0;
   alturah = 0.0;
   alturam = 0.0;
   conth =0;
   contm = 0;

   while (cont <= 3)
   {  
		
   cout<<"1-MASCULINO 2-FEMININO\n"; 
   cin>>num;
   cout<<"Digite o altura \n";
   cin>>altura;	  
	  if ( num == 1)
		  {  
			alturah = alturah + altura;
			conth = conth + 1;		 
		   
			if (altura > alturamaior1) 
			   alturamaior1 = altura;
			
			if (altura < alturamenor1) 
			   alturamenor1 = altura;	 
		  }
	  
	  if (num == 2 )
		  { 
			  alturam = alturam + altura; 
			  contm = contm + 1;
			
			if (altura > alturamaior2) 
				alturamaior2 = altura;
			
			if (altura < alturamenor2) 
				alturamenor2 = altura; 
		  }		   
   cont++;
   }
	  
  if (  alturamaior1 > alturamaior2){
	  cout<<"MAIOR ALTURA---> "<<alturamaior1;		  
	  cout<<"\n ";
	  }
  else{
	  cout<<"MAIOR ALTURA---> "<<alturamaior2; 
	  cout<<"\n ";
	  }
  if (alturamenor1 <alturamenor2){
	  cout<<"MENOR ALTURA---> "<< alturamenor1; 
	  cout<<"\n ";
	  }
  else{ 
	  cout<<"MENOR ALTURA---> "<<alturamenor2;
	  cout<<"\n ";
	  }
	  
   mediah = alturah/conth;   
   mediam = alturam/contm;	

   cout<<"MEDIA MULHER---> "<<mediam;
   cout<<"\n ";
   cout<<"MEDIA HOMEM---> "<<mediah; 
   cout<<"\n ";   
   
system("PAUSE"); 
return EXIT_SUCCESS;
}

Observe no algoritmo q você primeiramente lia os dados fora do while beleza, ai os dados eram processados e pedia-se mais dados até cont<=2 ow seja, qnd o cont esta em 2 ele faz oq tem q fazer normal e pede para o cara digitar o num e a altura soh q ele naum processa esses ultimos dados pq ele vai voltar no loop e vai ver q a condição cont<=2 é falsa e sai fora ow seja fica sem processar os ultimos dados digitados..

 

Caso você naum entenda muito bem(oq eu imagino msm)... compile o algoritmo e volte a postar c tiver duvidas!!

 

**A respeito de livros(apostilas) entra no www.apostilando.com faz o cadastro e lah tem diversas apostilas de Linguagem C/C++

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Olha como eu alterei, veja c isso resolve seu problema... abaixo do programa eu falo oq alterei.

#include <cstdlib>
#include <iostream>
   
using namespace std;

int main(int argc, char *argv[])
{
   int cont,num,conth,contm;
   float altura,alturah,alturam,mediam,mediah,alturamaior1,alturamenor1,alturamaior2,altu
ramenor2;		   
  
   cont = 0;
   alturamenor1 =2.0; 
   alturamaior1 = 1.0;
   alturamenor2 =2.0; 
   alturamaior2 = 1.0;
   alturah = 0.0;
   alturam = 0.0;
   conth =0;
   contm = 0;

   while (cont <= 3)
   {  
		
   cout<<"1-MASCULINO 2-FEMININO\n"; 
   cin>>num;
   cout<<"Digite o altura \n";
   cin>>altura;	  
	  if ( num == 1)
		  {  
			alturah = alturah + altura;
			conth = conth + 1;		 
		   
			if (altura > alturamaior1) 
			   alturamaior1 = altura;
			
			if (altura < alturamenor1) 
			   alturamenor1 = altura;	 
		  }
	  
	  if (num == 2 )
		  { 
			  alturam = alturam + altura; 
			  contm = contm + 1;
			
			if (altura > alturamaior2) 
				alturamaior2 = altura;
			
			if (altura < alturamenor2) 
				alturamenor2 = altura; 
		  }		   
   cont++;
   }
	  
  if (  alturamaior1 > alturamaior2){
	  cout<<"MAIOR ALTURA---> "<<alturamaior1;		  
	  cout<<"\n ";
	  }
  else{
	  cout<<"MAIOR ALTURA---> "<<alturamaior2; 
	  cout<<"\n ";
	  }
  if (alturamenor1 <alturamenor2){
	  cout<<"MENOR ALTURA---> "<< alturamenor1; 
	  cout<<"\n ";
	  }
  else{ 
	  cout<<"MENOR ALTURA---> "<<alturamenor2;
	  cout<<"\n ";
	  }
	  
   mediah = alturah/conth;   
   mediam = alturam/contm;	

   cout<<"MEDIA MULHER---> "<<mediam;
   cout<<"\n ";
   cout<<"MEDIA HOMEM---> "<<mediah; 
   cout<<"\n ";   
   
system("PAUSE"); 
return EXIT_SUCCESS;
}

Observe no algoritmo q você primeiramente lia os dados fora do while beleza, ai os dados eram processados e pedia-se mais dados até cont<=2 ow seja, qnd o cont esta em 2 ele faz oq tem q fazer normal e pede para o cara digitar o num e a altura soh q ele naum processa esses ultimos dados pq ele vai voltar no loop e vai ver q a condição cont<=2 é falsa e sai fora ow seja fica sem processar os ultimos dados digitados..

 

Caso você naum entenda muito bem(oq eu imagino msm)... compile o algoritmo e volte a postar c tiver duvidas!!

 

**A respeito de livros(apostilas) entra no www.apostilando.com faz o cadastro e lah tem diversas apostilas de Linguagem C/C++

Grande, muito boa sua solução de fato eu já tinha visto o erro mais não sabia como resolver obrigado mermo rapaz espero contar com suas sloções mais vezes tá rodando filé filé sou iniciante e quero aprender sobre c++ para depois passar pra java vou estudar ela durante um ano até aprender ponteiros e tals espero contar com sua ajuda . obrigado !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

q isso cara eu to aki no forum sempre no intuito de ajudar!! qlqr duvida soh postar e c eu souber eu esclareço para você!!

vo colocar como resolvido!

 

flw :D

 

Grande, muito boa sua solução de fato eu já tinha visto o erro mais não sabia como resolver obrigado mermo rapaz espero contar com suas sloções mais vezes tá rodando filé filé sou iniciante e quero aprender sobre c++ para depois passar pra java vou estudar ela durante um ano até aprender ponteiros e tals espero contar com sua ajuda . obrigado !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.