italogoiania Posted August 28, 2011 Report Share Posted August 28, 2011 Dados três valores X, Y, Z, verifiquem se eles podem ser os comprimentos doslados de um triângulo e se forem escrever uma mensagem informando se é se éum triângulo equilátero, isósceles ou escaleno.O comprimento de um lado do triângulo é sempre menor do que a soma dos outros dois.Sabendo que: EQUILATERO - Todos lados iguaisISOCELES - Dois lados iguaisESCALENO - Todos os lados diferentesO que há de errado?Porque quando digito X,Y iguais e Z diferente, ele sai como isoceles e escaleno?Acontece a mesma coisa quando X e Z são iguais e Y diferente./* Este é o programa de exercício número 6 da lista do segundo semestre de 2011, Ciência da Computação UNASP */ #include <stdio.h> #include <conio.h> int x,y,z,lado,nulo; int main() { { const int nulo=0; } { printf("Digite X : "); scanf("%d", &x); } { printf("Digite Y : "); scanf("%d", &y); } { printf("Digite Z : "); scanf("%d", &z); } if(x == 0 && y == 0) { lado=0; if(lado == 0 && z == 0) { printf("Os valores informados não podem ser um triangulo \n"); } } if(x==y) { { lado=x; } if (lado==z) { printf("O Triangulo e equilatero\n"); } } if(x==y) { { lado=x; } if(lado != z) { printf("O Triangulo e isoceles\n"); } } if(x==z) { { lado=x; } if(lado != y) { printf("O Triangulo e isoceles\n"); } } if(y==z) { { lado=y; } if(lado != x) { printf("O Triangulo e isoceles\n"); } } else { printf("O triangulo e escaleno. \n"); } getch(); } Quote Link to comment Share on other sites More sharing options...
0 Dih_Negretto Posted October 12, 2011 Report Share Posted October 12, 2011 (edited) Olá.. observe o código que eu fiz... se ainda restar alguma dúvida estou à disposição.#include <stdio.h>#include <conio.h>int main(){ float lado1,lado2,lado3; //declaração das variaveis lados; printf("Lado 1:"); scanf("%f",&lado1);//leitura lado1; printf("Lado 2:"); scanf("%f",&lado2);//leitura lado2; printf("Lado 3:"); scanf("%f",&lado3);//leitura lado3; //Testa se algum lado é zero; if ((lado1==0)||(lado2==0)||(lado3==0)){ printf("Os lados informados não formam um triangulo\n"); //Se lado1 igual a lado2 e lado1 igual lado3, logo todos os lados são iguais; }else if ((lado1==lado2)&&(lado1==lado3)){ printf("Triangulo Equilatero\n"); //Teste para ver se apenas 2 lados são iguais; }else if (((lado1==lado2)&&(lado1!=lado3))||((lado2==lado3)&&(lado2!=lado3))||((lado1==lado3)&&(lado1!=lado2))){ printf("Triangulo Isosceles\n"); //Teste para todos os lados diferentes; }else if ((lado1!=lado2)&&(lado1!=lado3)&&(lado2!=lado3)){ printf("Triangulo Escaleno\n"); } getch();}Lembrando que esse código não faz a verificação de que um lado é menor que a soma dos outros dois. Edited October 12, 2011 by Dih_Negretto Quote Link to comment Share on other sites More sharing options...
Question
italogoiania
Dados três valores X, Y, Z, verifiquem se eles podem ser os comprimentos dos
lados de um triângulo e se forem escrever uma mensagem informando se é se é
um triângulo equilátero, isósceles ou escaleno.
O comprimento de um lado do triângulo é sempre menor do que a soma dos outros dois.
Sabendo que: EQUILATERO - Todos lados iguais
ISOCELES - Dois lados iguais
ESCALENO - Todos os lados diferentes
O que há de errado?
Porque quando digito X,Y iguais e Z diferente, ele sai como isoceles e escaleno?
Acontece a mesma coisa quando X e Z são iguais e Y diferente.
Link to comment
Share on other sites
1 answer to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.