הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   צריך עזרה קטנה ב-C (https://hosts.co.il/forums/showthread.php?t=33413)

hod206 22-10-06 01:13

צריך עזרה קטנה ב-C
 
מה הבעיה בזה:
קוד:

#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{
float a, b, c;
float x, y;
clrscr();
printf("please enter a:");
scanf("%f",&a);
printf("\n please enter b:");
scanf("%f",&b);
printf("\n please enter c:");
scanf("%f",&c);
x=(-b)+sqrt(b*b-4*a*c)/a*2;
y=(-b)-sqrt(b*b-4*a*c)/a*2;
printf("\n your x1 is: %f",x);
printf("\n your x2 is: %f",y);
}

כמו שאתם רואים אמורים להכניס A, B ו-C של משוואה ריבועית וזה אמור לפתור ולמצוא את 2 ה-Xים..
עכשיו, כשאני מריץ את זה ומכניס את ה-A, B ו-C, זה כותב לי שגיאה כזאת:
Floating point error: domain.
abnormal program termination.
במקום לכתוב את התוצאות...
מה זה אומר ואיך פותרים את זה? 8-*
תודה לעוזרים! =]

Balrog 22-10-06 17:31

בלי קשר לשגיאה שקיבלת, בכל מקרה עלולה להיות בעיה שזה לא יעשה בדיוק מה שאתה רוצה

שים לב לשורה
x=(-b)+sqrt(b*b-4*a*c)/a*2;

נחוצות סוגריים לדעתי על ה a*2

(לא סגור לגבי זה ^, תבדוק)


לגבי הבעיה השניה - יכול להיות שזה בגלל שהכנסת ערכים ככה שהדלתא יוצאת שלילית?
כדאי שתבדוק בנפרד שהערך שאתה מוציא לו שורש הוא חיובי (או אפס) לפני שאתה מוציא לו שורש.


כל הזמנים הם GMT +2. הזמן כעת הוא 10:33.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ