Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
10
Cevap
1526
Tıklama
0
Öne Çıkarma
C - Denklem Kökleri Hesaplama
W
10 yıl
Yüzbaşı
Konu Sahibi

C'ye yeni başladım. İkinci dereceden bir denklemin köklerini hesaplayan basit bir program yazdım.

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

int main ()

{

int a,b,c;
float D,k1,k2;

printf("İkinci dereceden bir denklemin katsayılarını sırayla girin:");

scanf("%d %d %d",&a,&b,&c);
D= (pow(b, 2) - 4*a*c);
k1= (-b+sqrt(D)/(2*a));
k2= (-b-sqrt(D)/(2*a));

if(D<0)
printf("Bu denklemin reel bir kökü yoktur.");
if(D=0)
printf("Bu denklemin tek reel kökü: %f",k1);
if(D>0)
printf("Bu denklemin reel kökleri: %f ve %f",k1,k2);


return 0;

}

Sorum şu ki, programı derlerken hata vermiyor. Ama çalıştırınca istediği 3 katsayıyı yazıp enterlayınca direk Terminal Session Stopped diyor ve program çalışmıyor. Nedenini anlamadım. Ne yapmalıyım?

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil





< Bu mesaj bu kişi tarafından değiştirildi W.F.Hopper -- 7 Nisan 2015; 23:12:21 >

< Bu ileti mobil sürüm kullanılarak atıldı >

H
10 yıl
Çavuş

programındaki hatayı gormedım ama şu şekilde de yazılabilri.

#include <stdio.h>
#include <math.h>
main(){

int x,x1,x2,dis,a,b,c,k;

k=(a*(x*x)+b*x+c);

printf("a yi giriniz: ");
scanf("%d",&a);
printf("b yi giriniz: ");
scanf("%d",&b);
printf("c yi giriniz: ");
scanf("%d",&c);

dis=b*b-4*a*c;

if(dis>0){
printf("Reel iki kok vardir.\n\n");
x1=(-b+pow(dis,1/2))/2*a;
x2=(-b-pow(dis,1/2))/2*a;
printf("x1 = %d\n",x1);
printf("x2 = %d\n",x2);
}
else if(dis==0){
printf("Esit iki kok vardir.\n\n");
x1=-b/2*a;
x2=-b/2*a;
printf("x1 = %d\n",x1);
printf("x2 = %d\n",x2);
}
else {
printf("Reel kok yoktur.");
}




}


Bu mesaja 1 cevap geldi.
W
10 yıl
Yüzbaşı
Konu Sahibi

quote:

Orijinalden alıntı: hellbas

programındaki hatayı gormedım ama şu şekilde de yazılabilri.

#include <stdio.h>
#include <math.h>
main(){

int x,x1,x2,dis,a,b,c,k;

k=(a*(x*x)+b*x+c);

printf("a yi giriniz: ");
scanf("%d",&a);
printf("b yi giriniz: ");
scanf("%d",&b);
printf("c yi giriniz: ");
scanf("%d",&c);

dis=b*b-4*a*c;

if(dis>0){
printf("Reel iki kok vardir.\n\n");
x1=(-b+pow(dis,1/2))/2*a;
x2=(-b-pow(dis,1/2))/2*a;
printf("x1 = %d\n",x1);
printf("x2 = %d\n",x2);
}
else if(dis==0){
printf("Esit iki kok vardir.\n\n");
x1=-b/2*a;
x2=-b/2*a;
printf("x1 = %d\n",x1);
printf("x2 = %d\n",x2);
}
else {
printf("Reel kok yoktur.");
}




}

Main fonksiyonunu int main() olarak tanımlıyorum. Ve return 0;'ı da ekliyorum. Ama derleyici hata veriyor. Belki de derleyicide sorun vardır. Telefondan yapıyorum. Cppdroif kullanıyorum.

Bu arada k'yı boşuna tanımlamışsın galiba.



< Bu ileti mobil sürüm kullanılarak atıldı >

W
10 yıl
Yüzbaşı
Konu Sahibi

Bilgisayarda da Dev C++ üzerinde denedim. Aynı sorunu onda da yaşadım. Yani sorun derleyicide değilmiş. Yardım edebilirseniz sevinirim.



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
L
10 yıl
Yarbay

giriyorum dediğin 3 katsayı nedir?



A
10 yıl
Er

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main ()
{
int a,b,c,k1,k2;
float D;
printf("İkinci dereceden bir denklemin katsayılarını sırayla girin:");

scanf("%d %d %d",&a,&b,&c);
D= (pow(b, 2) - 4*a*c);
k1= (-b+sqrt(D))/(2*a);
k2= (-b-sqrt(D))/(2*a);

if(D<0)
printf("Bu denklemin reel bir kökü yoktur.");
if(D==0)
printf("Bu denklemin tek reel kökü: %d",k1);
if(D>0)
printf("Bu denklemin reel kökleri: %d ve %d",k1,k2);

return 0;

}

//değişken dönüşümünde hatayı düzelttim (d kesinlikle float olmalı, k1 ve k2 int olabilir.)
//k1'i bulurken /2*a yı parantez dışında yaptım,
//if'in içerisinde 2 tane eşittir yaptım
//umarım sende de düzgün çalışır.




Bu mesajda bahsedilenler: @yyyaaannnbu
A
10 yıl
Binbaşı

Hocam math I include etmişsin ama pow ve sqrt yazarken başına math.pow yada math.sqrt demen gerekmiyor mu? C yi bilmem ama c# da problem çıkartıyor bu durum.



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
E
10 yıl
Teğmen

C de gerek yok hocam



< Bu ileti mobil sürüm kullanılarak atıldı >


Bu mesajda bahsedilenler: @adnansetek
W
10 yıl
Yüzbaşı
Konu Sahibi

@alturk19

Valla bunda da derlerken sorun çıkıyor.

@adnansetek

Hayır gerek olmuyor.





< Bu mesaj bu kişi tarafından değiştirildi W.F.Hopper -- 9 Nisan 2015; 12:53:26 >

< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @altrk19 , @adnansetek
A
10 yıl
Er

Ne hatasi veriyor?
Ekran görüntüsü gönderebilir misin?



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @yyyaaannnbu
W
10 yıl
Yüzbaşı
Konu Sahibi

quote:

Orijinalden alıntı: altrk19

Ne hatasi veriyor?
Ekran görüntüsü gönderebilir misin?

Verdiği hata çok karışık ve sayfalarca uzun. Ben de anlamadım. Görüntü de gönderebileceğimi sanmıyorum. Çünkü hata penceresi telefon ekranının çok ufak bir kısmında ve parça parça okuyabiliyorum. 15-20 tane ekran görüntüsü almak gerekir. Kopyalayamıyorum da.



< Bu ileti mobil sürüm kullanılarak atıldı >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.