Top.Mail.Ru
Ответы

Помогите, не работает код на с++

Кто шарит подсобите, выдает ошибку где setw(8) но непонятно почему, буду благодарен:
#include <conio.h>
#include <iostream>
using namespace std;
int main()
{
double A, B, X, F, G, P, h;
int k;
cin >> A >> B >> k;
h = (B - A) / (k - 1);
X = A;
cout << "---------------------------------" << endl;
cout << "| X | F | G | P |" << endl;
cout << "---------------------------------" << endl;

for (int i = 0; i < k; i++)
{
if (X < -4) F = -X - 7;
else if (X > 4) F = X * X + 1;
else if (-4 < X < 4) F = X;
else if (X == 4) F = X;
else if (X == -4) F = X;
if (X < 2) G = std::log(2 + X);
else G = sqrt((X * X) + 2);

P = (F * F) + (G * G);
cout.precision(5);
cout << '|' << setw(8) << X;
cout << '|' << setw(8) << F;
cout << '|' << setw(8) << G;
cout << '|' << setw(8) << P << '|' << endl;
X = X + h;
}
cout << "------------------------------------" << endl;
cin >> X;
return(0);
}

По дате
По рейтингу
Аватар пользователя
Мастер
8мес

Сгенерировано ИИ:

Ошибка, связанная с setw(8), обычно возникает из-за отсутствия подключения заголовочного файла <iomanip>, который содержит определение функции setw. Чтобы исправить ошибку, добавьте следующую строку в начало вашего кода:

1
 #include <iomanip> 

Также обратите внимание на условие else if (-4 < X < 4). В C++ такое выражение не работает так, как возможно ожидается. Вместо этого используйте логический оператор && для правильной проверки диапазона:

1
 else if (X > -4 && X < 4) F = X; 

Вот исправленный вариант вашего кода:

12345678910111213141516171819202122232425262728293031323334353637383940
 #include <conio.h>  
#include <iostream> 
#include <iomanip> // Добавлено для setw 
using namespace std;  
 
int main()  
{  
    double A, B, X, F, G, P, h;  
    int k;  
    cin >> A >> B >> k;  
    h = (B - A) / (k - 1);  
    X = A;  
    cout << "---------------------------------" << endl;  
    cout << "|   X   |   F   |   G   |   P   |" << endl;  
    cout << "---------------------------------" << endl;  
 
    for (int i = 0; i < k; i++)  
    {  
        if (X < -4) F = -X - 7;  
        else if (X > 4) F = X * X + 1;  
        else if (X > -4 && X < 4) F = X;  
        else if (X == 4) F = X;  
        else if (X == -4) F = X;  
 
        if (X < 2) G = std::log(2 + X);  
        else G = sqrt((X * X) + 2);  
 
        P = (F * F) + (G * G);  
        cout.precision(5);  
        cout << '|' << setw(8) << X;  
        cout << '|' << setw(8) << F;  
        cout << '|' << setw(8) << G;  
        cout << '|' << setw(8) << P << '|' << endl;  
        X = X + h;  
    }  
    cout << "------------------------------------" << endl;  
    cin >> X;  
    return 0;  
} 
 

После этих изменений ваш код должен компилироваться без ошибок, связанных с setw(8).

Аватар пользователя
Оракул
8мес
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
 #include <conio.h>  
#include <iostream>  
#include <iomanip> // Добавляем этот заголовок 
#include <cmath> // Для функций логарифма и квадратного корня 
 
using namespace std;  
 
int main()  
{  
    double A, B, X, F, G, P, h;  
    int k;  
    cin >> A >> B >> k;  
    h = (B - A) / (k - 1);  
    X = A;  
    cout << "---------------------------------" << endl;  
    cout << "|   X   |   F   |   G   |   P   |" << endl;  
    cout << "---------------------------------" << endl;  
 
    // Устанавливаем формат вывода один раз перед циклом 
    cout << fixed << setprecision(5); 
 
    for (int i = 0; i < k; i++)  
    {  
        if (X < -4) { 
            F = -X - 7;  
        } 
        else if (X > 4) { 
            F = X * X + 1;  
        } 
        else if (X > -4 && X < 4) { // Исправлено условие 
            F = X;  
        } 
        else if (X == 4) { 
            F = X;  
        } 
        else if (X == -4) { 
            F = X;  
        } 
 
        if (X < 2) { 
            G = log(2 + X);  
        } 
        else { 
            G = sqrt((X * X) + 2);  
        } 
 
        P = (F * F) + (G * G);  
 
        cout << '|' << setw(8) << X 
             << '|' << setw(8) << F 
             << '|' << setw(8) << G 
             << '|' << setw(8) << P << '|' << endl;  
 
        X = X + h;  
    }  
    cout << "------------------------------------" << endl;  
    cin >> X;  
    return 0;  
} 
Аватар пользователя
Ученик
8мес

Никак