• Предмет: Информатика
  • Автор: SlavaZSU
  • Вопрос задан 4 месяца назад

Что не так с кодом?

#include

#include

using namespace std;

int main()

{int m, a, b, x;

cout << "Vvedite a: " ;

cout << "Vvedite b: " ;

cin >> a ;

cin >> b ;

if (x < 1) m = x + 1;

else if (x = 1) m = a - x + b; // виконується, якщо х = 1

else if (x > 1) m = x- (b/a);

cout << "m=" << m << endl;


return 0;}

Приложения:

Ответы

Ответ дал: MagicSticks
0

Ответ:

Спробуй так

cout << "Vvedite a: " ;

cin >> a ;

cout << "Vvedite b: " ;

cin >> b ;

cout << "Vvedite x: " ;

cin >> x ;

if (x < 1) {

   m = x + 1;

}

else if (x == 1) {

   m = a - x + b;

}

else if (x > 1 && a != 0) {

   m = x - (b/a);

}

else {

   cout << "Divide by zero error." << endl;

   return 1;

}

cout << "m=" << m << endl;

return 0;

Объяснение:

Змінна x не була оголошена або не була присвоєна значення, але вона використовується в умові if. Це може привести до непередбачуваної поведінки програми.

Умова if містить порівняння <, але змінна x не була присвоєна значення. Це також може привести до непередбачуваної поведінки програми.

Умова if містить присвоєння =, але має бути порівняння ==, щоб перевірити, чи рівні змінні x і 1.

Вираз x- (b/a) може привести до ділення на нуль, якщо змінна a дорівнює 0.


SlavaZSU: Он не хочет принимать букву b,дабы я вписывал значение
Ответ дал: fokib54
0

Відповідь:

Виправлений код:

#include <iostream>

using namespace std;

int main()

{

int m, a, b, x;

cout << "Vvedite a: " ;

cin >> a ;

cout << "Vvedite b: " ;

cin >> b ;

cout << "Vvedite x: " ;

cin >> x ;

if (x < 1) m = x + 1;

else if (x == 1) m = a - x + b;

else if (x > 1) m = x - (b/a);

cout << "m=" << m << endl;

return 0;

}

Пояснення:

У коді не ініціалізована змінна x перед перевіркою на значення у if...else if. Також у другому умовному операторі умість порівняння (==) використовується операція присвоєння (=), що може призвести до непередбачуваної поведінки програми. Варто замінити "=" на "==" у цьому операторі.


SlavaZSU: Он не хочет принимать букву b,дабы я вписывал значение
Вас заинтересует