Ir ao conteúdo
  • Cadastre-se

Exercicio Triangulo


Diego TJS
Ir à solução Resolvido por isrnick,

Posts recomendados

Eu de novo pedindo ajuda de vocês na linguagem C... primeiro segue o link do exercício é muito grande para postar http://olimpiada.ic.unicamp.br/pratique/programacao/nivel1/2011f1p1_triangulos

 

O problema é o seguinte eu consegui fazer o código e ele funciona nos três tipos de triângulo mas quando é para exibir a letra "n" que não é possível formar triangulo ele exibe duas condições no caso exibe a letra "n" e a letra "o" que é de triângulo obtusângulo, segue o código e um print do erro:

//Exercicio Triângulo#include<iostream>#include<string.h>#include<stdlib.h>#include<conio.h>#include<stdio.h>#include<locale.h>int main(){	int A, B, C;	setlocale(LC_ALL, "Portuguese"); 			printf("Informe os lados do triângulo (Separados por espaço):\n");		scanf("%d %d %d",&A,&B,&C);				//Verificando se forma triângulo ou não		//Condição para formar triangulo		if((A+>C && (A+C)>B && (B+C)>A);				//Se não formar triangulo já imprime a letra N e finaliza		else		{			printf("n\n");		}				/*No caso de fomar triangulo, 		Verificar qual tipo de triângulo será formado*/		//Condição para triangulo RETANGULO	if ((B* + (C*C) == (A*A) || (A*A) + (C*C) == (B* || (B* + (A*A) == (C*C))	{		printf("r\n");	}				//Condição para triangulo OBTUSANGULO    if(A>B && A>C || B>A && B>C || C>B && C>A)  {	if ((B* + (C*C) < (A*A) || (A*A) + (C*C) < (B* || (A*A) + (B* < (C*C) )	{		printf("o\n");	}  }	 			//Condição para triangulo ACUTANGULO	else if ((B* + (C*C) > (A*A) || (A*A) + (C*C) > (B* || (B* + (A*A) > (B*)	{		printf("a\n");	}		system("pause");	}

post-645959-0-56383900-1443639851_thumb.

Link para o comentário
Compartilhar em outros sites

  • Solução

Basta colocar as análises de tipo de triângulo dentro do if que checa se forma triangulo, assim ele nunca checará essas condição se não formar, veja:

(Dei uma organizada no seu código)

//Exercicio Triângulo#include<iostream>#include<string.h>#include<stdlib.h>#include<conio.h>#include<stdio.h>#include<locale.h>int main(){	int A, B, C;	setlocale(LC_ALL, "Portuguese"); 			printf("Informe os lados do triângulo (Separados por espaço):\n");		scanf("%d %d %d",&A,&B,&C);				//Verificando se forma triângulo ou não		//Condição para formar triangulo		if((A+>C && (A+C)>B && (B+C)>A)		{			/*No caso de fomar triangulo, 			Verificar qual tipo de triângulo será formado*/			//Condição para triangulo RETANGULO			if ((B* + (C*C) == (A*A) || (A*A) + (C*C) == (B* || (B* + (A*A) == (C*C))			{				printf("r\n");			}					//Condição para triangulo OBTUSANGULO			if(A>B && A>C || B>A && B>C || C>B && C>A)			{				if ((B* + (C*C) < (A*A) || (A*A) + (C*C) < (B* || (A*A) + (B* < (C*C) )				{					printf("o\n");				}			}	 				//Condição para triangulo ACUTANGULO			else if ((B* + (C*C) > (A*A) || (A*A) + (C*C) > (B* || (B* + (A*A) > (B*)			{				printf("a\n");			}		}		//Se não formar triangulo já imprime a letra N e finaliza		else		{			printf("n\n");		}		system("pause");	}

Esse é um problema que é postado aqui no fórum frequentemente, aqui estão 2 tópicos que podem ser interessantes pra você:

http://forum.clubedohardware.com.br/forums/topic/1067339-programa-em-c/

http://forum.clubedohardware.com.br/forums/topic/1068211-d%C3%BAvida-em-programa-c/

Link para o comentário
Compartilhar em outros sites

Basta colocar as análises de tipo de triângulo dentro do if que checa se forma triangulo, assim ele nunca checará essas condição se não formar, veja:

(Dei uma organizada no seu código)

//Exercicio Triângulo#include<iostream>#include<string.h>#include<stdlib.h>#include<conio.h>#include<stdio.h>#include<locale.h>int main(){	int A, B, C;	setlocale(LC_ALL, "Portuguese"); 			printf("Informe os lados do triângulo (Separados por espaço):\n");		scanf("%d %d %d",&A,&B,&C);				//Verificando se forma triângulo ou não		//Condição para formar triangulo		if((A+>C && (A+C)>B && (B+C)>A)		{			/*No caso de fomar triangulo, 			Verificar qual tipo de triângulo será formado*/			//Condição para triangulo RETANGULO			if ((B* + (C*C) == (A*A) || (A*A) + (C*C) == (B* || (B* + (A*A) == (C*C))			{				printf("r\n");			}					//Condição para triangulo OBTUSANGULO			if(A>B && A>C || B>A && B>C || C>B && C>A)			{				if ((B* + (C*C) < (A*A) || (A*A) + (C*C) < (B* || (A*A) + (B* < (C*C) )				{					printf("o\n");				}			}	 				//Condição para triangulo ACUTANGULO			else if ((B* + (C*C) > (A*A) || (A*A) + (C*C) > (B* || (B* + (A*A) > (B*)			{				printf("a\n");			}		}		//Se não formar triangulo já imprime a letra N e finaliza		else		{			printf("n\n");		}		system("pause");	}

Esse é um problema que é postado aqui no fórum frequentemente, aqui estão 2 tópicos que podem ser interessantes pra você:

http://forum.clubedohardware.com.br/forums/topic/1067339-programa-em-c/

http://forum.clubedohardware.com.br/forums/topic/1068211-d%C3%BAvida-em-programa-c/

Cara obrigado mesmo realmente percebi onde estava errando, no caso o a condição do "n" foi pro fim assim ao colocar os números se não formar triangulo ele já pula tudo caso contrario verifica qual tipo de triangulo é, os dois tópicos são duvidas iguais devia ter dado uma pesquisada melhor, agradece !

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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