Daszbin Ответов: 1

У меня есть проблема с остановкой процесса на отрицательном числе


Проблема, с которой я сталкиваюсь, заключается в том, что когда я ввожу отрицательное число, оно показывает Ньютоны, и я не хочу, чтобы оно появлялось, когда присутствует отрицательное число.

Вот инструкция:
Mass and Weight 
Scientists measure an object’s mass in kilograms and its weight in newtons. If you know
the amount of mass that an object has, you can calculate its weight, in newtons, with
the following formula:  Weight = mass * 9.8  Write a program that asks the user to enter an object’s mass, and then calculates and
displays its weight. If the object weighs more than 1,000 newtons, display a message
indicating that it is too heavy. If the object weighs less than 10 newtons, display a mes-
sage indicating that the object is too light. The program will continue until a negative number is entered for the mass.


Вот как это делает мой инструктор
[^]

Что я уже пробовал:

#include <iostream>
using namespace std;

int main()
{
double mass, weight;
do
{
   cout << "Enter the object's mass (in kilograms).  A negative mass stops the program.";
cin>>mass;

weight = (mass*9.8);
 cout << "The object weighs " << weight
        << " Newtons.\n";

if(weight>1000){

    cout << "The object is too heavy!\n";
}


else if(weight<10){

      cout << "The object is too light!\n";
}



}while(weight>=0);

   return 0;
}

1 Ответов

Рейтинг:
1

Patrice T

Научитесь правильно делать отступы в вашем коде, это покажет его структуру, и это поможет чтению и пониманию.

#include <iostream>
using namespace std;

int main()
{
  double mass, weight;
  do
  {
    cout << "Enter the object's mass (in kilograms).  A negative mass stops the program.";
    cin>>mass;

    weight = (mass*9.8);
    cout << "The object weighs " << weight
    << " Newtons.\n";

    if(weight>1000){
      cout << "The object is too heavy!\n";
    }
    else if(weight<10){
      cout << "The object is too light!\n";
    }
  }while(weight>=0);
  return 0;
}

Профессиональные редакторы программистов имеют эту функцию и другие, такие как сопоставление скобок и подсветка синтаксиса.
Блокнот++ Главная Страница[^]
личные[^]
Цитата:
Проблема, с которой я сталкиваюсь, заключается в том, что когда я ввожу отрицательное число, оно показывает Ньютоны, и я не хочу, чтобы оно появлялось, когда присутствует отрицательное число.

Все просто! Вы проверяете отрицательный результат в неправильном месте кода.

Существует инструмент, который позволяет вам видеть, что делает ваш код, его имя отладчик Это также отличный инструмент обучения, потому что он показывает вам реальность, и вы можете увидеть, какие ожидания соответствуют реальности.
Когда вы не понимаете, что делает ваш код или почему он делает то, что он делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик - Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010 - YouTube[^]
Отладчик здесь, чтобы показать вам, что делает ваш код, и ваша задача-сравнить с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.