Ir ao conteúdo

Desenvolver o programa em linguagem C


izabela3513

Posts recomendados

Postado

Dados três valores, A,B,C, verificar se eles podem ser valores dos lados de um triângulo e, se for, se é triângulo qualquer, triângulo eqüilátero ou triângulo isóceles..

olá pessoal estou em duvida de como resolver esse programa, me ajude aí por favor. obs.: RESOLVER NA LINGUAGEM C

Postado

Caraca, muito interessante!

Acredito que para ser triangulo, basta nenhum dos 3 pontos ser igual ao outro, ou eles não estarem em uma mesma reta.

Dado isso, para descobrir que tipo de triângulo ele é, você vai ter que fazer 3 contas para achar as distâncias entre A-B, B-C, e C-A. Se as distâncias forem todas diferentes, é triângulo qualquer, se 2 delas forem iguais é isósceles e se as 3 forem iguais ele é equilátero.

Lembra da fórmula da distância entre 2 pontos? D = raiz quadrada de[(x2-x1)² + (y2-y1)²].

Com essas informações dá pra fazer esse programa tranquilamente! =) Poste uma tentativa que a gente te ajuda no que precisar!

Postado

Na verdade os valores inseridos em A,B e C ja serão a medida do lado do triangulo.

para verificar e descobrir que triangulo é use:

if (A != B && A != C && B != C) -> triangulo qualquer.

if (A == B && A == C && B == C) -> triangulo equilatero

if (A != B && A == C && B == C) -> triangulo isoceles

if (A == B && A != C && B == C) -> triangulo isoceles

if (A == B && A == C && B != C) -> triangulo isoceles

Postado

Um triangulo pode ter os 3 lados iguais sim o.o

Já aí teria que ver se os valores que você vai ler são os tamanhos dos lado, ou as coordenadas das vértices.

Postado

olá pessoal, eu resolvi desse jeito só que não aparece, o triangulo qualquer, olhe aí o que esta errado pra mim, por favor:

#include<stdio.h>
#include<stdlib.h>

int main()
{
int a,b,c;

printf("entre com o valor de a:\n ");
scanf("%i",&a);
printf("entre com o valor de b:\n ");
scanf("%i",&;
printf("entre com o valor de c:\n ");
scanf("%i",&c);

if(a==b||a==c||b==c)

printf("o triangulo e equilatero");
else
if (a!=b||b==c||c!=a)
printf("o triangulo e isoceles");
else
if (a != b && b != c && b != c)
printf("É um triangulo qualquer");
else
printf("\n");
system("pause");
return 0;
}

Postado

Para um triangulo ser equilátero todos os lados devem ser iguais, então:


......
if (a==b && b==c) // se a é igual a b e b é igual a c, então a é igual a c e todos são iguais
printf("o triangulo e equilatero");
.....

Isso para começar, porque as outras verificações também precisam ser corrigidas...

Postado

Antes de verificarmos o tipo de triangulo precisamos saber se é mesmo um triangulo né !?

#include <stdio.h>

#include <conio.h>

int main()

{

float A,B,C;

printf("Digite o tamanho do lado A de seu triangulo: ");

scanf("%f",&A);

printf("Digite o tamanho do lado B de seu triangulo: ");

scanf("%f",&B);

printf("Digite o tamanho do lado C de seu triangulo: ");

scanf("%f",&C);

if(A < (B+C) & B < (A+C) & C < (A+B)) /* verifica se é um triangulo */

{

if(A==B & B==C) /* Não é preciso tantos testes */

printf("O triangulo é Equilatero.");

else if(A==B||A==C||B==C)

printf("O triangulo é Isoceles.");

else

printf("Triângulo é Escaleno");

}

getch();

}

código testado sem os comentários, qualquer erro por favor me corrijam, código sem indentação fica ruim de ler raapaz.

Abraços

Postado

Aproveitando o exercício para estudar fiz o seguinte código.


#include<iostream>
using namespace std;
float triangulo(float a,float b,float c);
int main()
{
float a,b,c;
cout<<"\nDigite valor a: ";
cin>>a;
cout<<"\nDigite valor b: ";
cin>>b;
cout<<"\nDigite valor c: ";
cin>>c;
if(a!=b && b!=c)
cout<<"\nTriangulo qualquer.";
if(a==b && b==c)
cout<<"\nTriangulo equilatero.";
else if(a==b && b!=c)
cout<<"\nTriangulo isoceles.";
cout<<"\n\n";
system("pause");
return 0;
}
float triangulo(float a,float b,float c)
{
return a,b,c;
}

Qualquer erro podem comentar.

Postado

APC, você esqueceu da parte de verificar a condição de existência de um triângulo:

if(a < (b+c) && b < (a+c) && c < (a+B))

Pois do jeito que seu programa está eu poderia digitar por exemplo:

a = 500000

b = 2

c = 2

E isso nao seria um triangulo....

Outra coisa: (a==c) ou (c==B) tambem não seriam triangulos isóceles??

Postado

Para verificar um triangulo isosceles o melhor seria:


if (a==b || b==c || a==c)
printf("triangulo isosceles");

esse if deveria ficar depois da verficacao se é equilátero. Acho que assim funciona...

Postado

Task, justamente por isso esse if deve ficar depois da verificação se é equilátero (antes eu esqueci, mas tem que colocar else if não só if). algo assim:


if (a==b && b==c)
printf("triangulo equilatero");
else if (a==b || b==c || a==c)
printf("triangulo isosceles");
else printf("triangulo qualquer);

Assim deve funcionar...

Postado

Prezado, lendo as sugestões dos amigos acima, modifiquei o código, me parece que agora ta legal.


#include<iostream>
using namespace std;
float triangulo(float a,float b,float c);
int main()
{
float a,b,c;
cout<<"\nDigite valor a: ";
cin>>a;
cout<<"\nDigite valor b: ";
cin>>b;
cout<<"\nDigite valor c: ";
cin>>c;
if(a<(b+c) && b<(a+c) && c<(a+)//verifica se é um triângulo
{
if(a==b && b==c)
cout<<"\nTriangulo equilatero.";
else if(a==b || b==c || a==c)
cout<<"\nTriangulo isosceles.";
else
cout<<"\nTriangulo qualquer.";
cout<<"\n\n";
system("pause");
return 0;
}
}
float triangulo(float a,float b,float c)
{
return a,b,c;
}

Arquivado

Este tópico foi arquivado e está fechado para 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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!