italogoiania Postado Agosto 28, 2011 Denunciar Share Postado Agosto 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(); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Dih_Negretto Postado Outubro 12, 2011 Denunciar Share Postado Outubro 12, 2011 (editado) 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. Editado Outubro 12, 2011 por Dih_Negretto Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
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 para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
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.