Member 14733155 Ответов: 1

Что не так в этом коде?


Это простая задача для расчета процента выигрыша.

Есть тестовый случай, который говорит, что мой код не проверяет сумму ремонта.

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

import java.util.Scanner;
class Gain {
   public static void main(String[] args){
      double g=0;
      int gain;
      Scanner in=new Scanner (System.in);
      System.out.println("Price of old scooter:");
      int p=in.nextInt()
      System.out.println("The amount spent for    repair:");
      int r=in.nextInt();
      System.out.println("Sold Price:");
      int s=in.nextInt();
      int cost=p+r;
      gain=s-cost;
      if((p>e)&&(r>0)&&(s>0)){
         if(gain>0){
            g=((gain/cost) *100);
            int r=in.nextInt();
            System.out.println("Sold Price:");
            int s=in.nextInt();
            int cost=p+r;
            gain=s-cost;
            if((p>0)&&(r>0)&&(s>0)) {
               if(gain>0){
                  g=((gain/cost)*100);
                  System.out.printf("Gain percentage is %.2f",g);
               }
               else{
                  System.out.println("Unable to calculate Gain Percentage");
               }
            }
            else{
               System.out.println("Incorrect Inputs");
            }
         }
      }

Richard MacCutchan

Приведенный выше код даже не будет компилироваться, так как есть синтаксические ошибки (пропущенные точки с запятой) и повторяющиеся объявления переменных. Сначала вам нужно решить эти проблемы. Ваш код также очень трудно понять с этими однобуквенными именами переменных. Используйте правильные осмысленные имена, и вы с большей вероятностью увидите, где это идет не так.

1 Ответов

Рейтинг:
0

OriginalGriff

Мы понятия не имеем, что должен делать ваш код, не говоря уже о том, как выглядят ваши тестовые данные или какой ответ вы ожидали получить по сравнению с тем, что вы получили. Без этого и вашего кода, работающего против данных, мы действительно ничего не можем сделать, чтобы исправить это для вас.

Так что все будет зависеть от тебя.
К счастью, у вас есть инструмент, который поможет вам выяснить, что происходит: отладчик. Как вы его используете, зависит от вашей системы компилятора, но быстрый поиск в Google имени вашей IDE и "отладчика" должен дать вам необходимую информацию.

Поместите точку останова в первую строку функции и запустите код через отладчик. Затем посмотрите на свой код и на свои данные и определите, что должно произойти вручную. Затем по одному шагу в каждой строке проверяйте, что то, что вы ожидали, произойдет именно так, как и произошло. Когда это не так, тогда у вас есть проблема, и вы можете вернуться назад (или запустить ее снова и посмотреть более внимательно), чтобы выяснить, почему.

Извините, но мы не можем сделать это за вас - пришло время вам освоить новый (и очень, очень полезный) навык: отладку!


Member 14733155

Пример ввода и вывода выглядит следующим образом:
вход:
Цена старого самоката:
4700
Сумма, потраченная на ремонт:
цена продажи:
5800
выход :
Процент Выигрыша:5.45

OriginalGriff

И что же? Что показывает вам отладчик?

Member 14733155

я пишу это на онлайн-ide, не знаю, как отлаживать

OriginalGriff

Рискуя повторить: "... быстрый поиск в Google названия вашей IDE и "отладчика" должен дать вам необходимую информацию."

Если вы не научитесь использовать его в таких маленьких приложениях, как это, как вы ожидаете справиться, когда вы доберетесь до обычных размеров: 20 000 строк или 100 000 строк кода?