İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

Buradaki hatam nedir acaba?

NeverTellLie06.06.20173 cevap1.117 görüntüleme
#1
#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
düzenlendi
Cevaplar
#2
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 Konuyu açan
#3
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:
#4
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;

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.