Я пытаюсь создать программу, которая решает для корня данного полинома, и я хотел бы использовать fstream для получения полинома, корни которого программа решит. В принципе, есть текстовый файл, содержащий некоторые цифры, как, например:Fstream - получение определенных строк по первой строке
5
3
7
-5
0
7
-6
3
4
0
8
Первое число будет степень полинома г, и от того, программа будет отсчитывать от значения г до 0. Затем программа выводит что-то вроде "The polynomial whose roots you'd like to compute is 3x^5+7x^4-5x^3+7x-6"
, извлекая значение из каждой строки.
Я смог реализовать что-то похожее на это, но вместо того, чтобы извлекать числа из текстового файла, пользователь должен был бы ввести его. Указанный код ниже:
int main(int argc, char *argv[])
{
int n;
cout << "Enter the degree of your polynomial: ";
cin >> n;
double a[n];
for(int m = n; m >= 0; m--)
{
if(m == 0)
{
cout << "Please enter the constant: ";
}
else
{
cout << "Please enter the coefficient of x^" << m << ": ";
}
cin >> a[m];
}
cout<<endl<< "The polynomial you entered is: ";
for(int i = n; i >= 0; i--)
{
if(i == 0 && a[0] >0)
{
cout << " + " << a[0] ;
}
else if(a[i] == 1 && i == n)
{
cout << "x^" << i;
}
else if(a[i] == 1)
{
cout << " + x^" << i;
}
else if(a[i] == -1 && i == n)
{
cout << "-x^" << i;
}
else if(a[i] == -1)
{
cout << " - x^" << i;
}
else if(a[i] < -1&& i!=0)
{
cout << " - " << fabs(a[i]) << "x^" << i;
}
else if(i==n)
{
cout << a[i] << "x^" << i;
}
else if(i != 0 && a[i]>0)
{
cout << " + " << a[i] << "x^" << i;
}
else if(i==0&&a[0] < 0)
{
cout << " - " << fabs(a[0]);
}
Как реализовать что-то подобное с помощью fstream? Спасибо за помощь!
Итак, я сделал это, но почему-то получаю очень странные результаты, вместо того, чтобы получать _6x^7 + 5x^5 + 4x^4 ..._, я получаю _3.24034e-317x^7 + 2.32434e-317x^5 + 4.32891e-311x^5 ..._ Больше информации о том, что я делаю неправильно? Большое спасибо! – BeepBop
@BeepBop, пожалуйста, разместите полную версию своего кода, и я взгляну на него –