我試圖編寫一個代碼,要求用戶給出五次多項式的5個係數,並且還要求給出一個範圍(兩個值)程序檢查是否存在解決方案(我被要求只找到一個),解決方案必須是整數,而係數可以是浮點數。用於查找五次多項式的一個根的代碼
我正在考慮編寫一個運行在範圍內的每個整數的代碼,並將其替換爲多於我定義的多項式的描述,並檢查它是否等於零,但我在決定如何製作循環。另一件事,如果用戶輸入的時間間隔中有多個根,那麼我們必須打印根的最小值(但我沒有方向怎麼做)。
我會告訴你是我寫的,到目前爲止,任何形式的幫助,將不勝感激:
#include <stdio.h>
#define zero 0.00001
int main()
{
double a, b, c , d , e , f , y , beginning_of_range, end_of_range;
int x;
printf("please enter the coefficients of the polynomial:\n");
scanf("%lf%lf%lf%lf%lf", &a, &b, &c, &d, &e);
printf("please enter two values to indicate the beginning and end of range:\n");
scanf("%lf%lf", &beginning_of_range, &end_of_range);
while (beginning_of_range > end_of_range)
{
printf("ERROR: the range you have entered isn't valid, please try again:");
scanf("%lf%lf", &beginning_of_range, &end_of_range);
}
while (beginning_of_range < end_of_range)
{
x = beginning_of_range;
y = a + b*x + c*x*x + d*x*x*x + e*x*x*x*x + f*x*x*x*x*x;
if (y == zero)
{
printf("the root is:%d", x);
}
else
{
x = x+1;
}
break;
}
return 0;
}
繼續,完成您的代碼。這似乎是正確的。考慮一下,如果你找到解決方案,你只需要跳出循環。你知道SO的政策,提供直接作業解決方案... – XapaJIaMnu 2015-04-01 19:22:28
即時通訊不要求解決方案,只有方向 – 2015-04-01 19:24:36
'if(y == zero)'這是錯誤的。你應該檢查'y'的絕對值是否小於'zero'。順便說一下,在你的代碼中,「零」不是0,所以你最好重命名它。這種常量/變量的常見名稱是「epsilon」。你應該記住,一個(幾乎)從不使用'=='與浮游物。 – fjardon 2015-04-02 08:33:09