Buradaki hatam nedir acaba?

Bu konuyu okuyanlar

NeverTellLie

Öğrenci
Katılım
14 Nisan 2017
Mesajlar
56
Reaksiyon puanı
2
Puanları
8
Yaş
28
PHP:
#include <stdio.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL,"");
int tam_sayi, tam_sayi1, tam_sayi2;
printf("Aralarında birer boşluk bırakarak üç tam sayı giriniz:");
scanf("%d %d %d",&tam_sayi,&tam_sayi1,&tam_sayi2);
printf("\nÜçgenin kenarları: %d %d ve %d dir.\n", tam_sayi,tam_sayi1,tam_sayi2);
if(tam_sayi+tam_sayi1>tam_sayi2)
{
printf("Üçgen oluşur.\n");
}
else if(tam_sayi+tam_sayi2>tam_sayi1)
{
printf("Üçgen oluşur.\n");
}
else if(tam_sayi1+tam_sayi2>tam_sayi)
{
printf("Üçgen oluşur.\n");
}
else
{
printf("Üçgen oluşmaz.\n");
}
return 0;
}
Üçgenin oluşmasını kenar bağıntılarını kullanarak denetleyen bir program yazmaya çalıştım.Program çalıştı ancak hangi sayıyı verirsem vereyim üçgen oluşur diyor.Yani beklediğim gibi bir program yazamamışım buradaki hatam nedir?Yardımcı olur musunuz
 
Son düzenleyen moderatör:

arsenik

Rektör
Katılım
8 Ağustos 2009
Mesajlar
11,365
Reaksiyon puanı
242
Puanları
63
Buradaki hata mantık hatası. Üçgenin oluşabilmesi için gerekli mantığı kafanızda düşünüp ona göre kodlamalısınız.

Yazdığınız kodda hata yok gibi gördüm.
 

NeverTellLie

Öğrenci
Katılım
14 Nisan 2017
Mesajlar
56
Reaksiyon puanı
2
Puanları
8
Yaş
28
Yani ben şöyle düşündüm ABC üçgenimiz var diyelim a b c kenarlarından oluşuyor ise karşımıza şöyle bir bağıntı çıkar: b-c<a<b+c
a -c<b<a+c
a-b<c<a+b
Bu bağıntıdan da şunları çıkartabiliriz
1)Bir üçgenin iki kenarının toplamı diğer kenardan büyüktür.
2)Bir üçgenin iki kenarının çıkarımı diğer kenardan küçüktür.
Ben yazmaya çalıştığım programda 1. çıkarımı kullanmaya çalıştım matematiksel olarak bir hatası yok gibi geldi bana ama bilemiyorum:oops:
 

lightning001

Öğrenci
Katılım
9 Haziran 2017
Mesajlar
1
Reaksiyon puanı
0
Puanları
1
Yaş
34
math.h kütüphanesi eklenerek, abs fonksiyonuyla (mutlak değer fonksiyonu) üçgen eşitsizliği kontrol edilebilir
b+c>a<|b-c|

if(tam_sayi+tam_sayi1>tam_sayi2&&tam_sayi2>abs(tam_sayi-tam_sayi1))
{
if(tam_sayi+tam_sayi2>tam_sayi1&&tam_sayi1>abs(tam_sayi-tam_sayi2))
{

if(tam_sayi1+tam_sayi2>tam_sayi&&tam_sayi>abs(tam_sayi1-tam_sayi2))
printf("Üçgen oluşur.\n");

else
printf("Üçgen oluşmaz.\n");

}
else
printf("Üçgen oluşmaz.\n");
}
else
printf("Üçgen oluşmaz.\n");


return 0;
 
Üst