MATHUMETHA V Ответов: 2

Я не знаю, почему он не выполняется


Однажды Банни и его друзья играли в прятки в лесу. Дунька пошла вместе, чтобы скрыться. Она находит в пещере брошенную сумку с настольной игрой(8х8). Она приходит в восторг и начинает играть в эту игру только для того, чтобы понять, что это волшебство. У нее есть три шанса бросить кости. Результат каждого поворота приведет к новому окружению, и некоторые из них будут опасны. Если результат броска кубиков будет кратен 3, то она будет поймана в опасной фазе. Напишите программу, чтобы узнать, закончит ли Твити игру и благополучно вернется или нет.

Если результат прокатки кубиков равен 0 или меньше этого, вы должны сказать Твити как " недопустимый ход"

Test Case

Input 1

Enter value of turn 1

10

Enter value of turn 2

5

Enter value of turn 3

2

Output 1

Tweety is safe


Input 2

Enter value of turn 1

3

Enter value of turn 2

9

Enter value of turn 3

12

Output 2

Tweety is in danger



Input 3

Enter value of turn 1

0

Enter value of turn 2

9

Enter value of turn 3

12

Output 3

Invalid Turn


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

#include<stdio.h>
int main()
{
    int a,b,c;
    printf("Enter value of turn 1\n");
    scanf("%d",&a);
    printf("Enter value of turn 2\n");
    scanf("%d",&b);
    printf("Enter value of turn 3\n");
    scanf("%d",&c);
    if(a>0 && b>0 && c>0)
    {
        if(a%3==0 && b%3==0 && c%3==0)
        {
            printf("Tweety is in danger");
        }
        else
        {
            printf("Tweety is safe");
        }
    }
    else if(a==0 || b==0 || c==0 )
    {
        printf("Invalid Turn");
    }
    else
    {
        printf("Invalid Turn");
        
    }
}

Graeme_Grant

Это очень похоже на домашнее задание...

Вы установили точку останова и прошли через код, чтобы увидеть, что он делает?

OriginalGriff

"Это не работает", вероятно, самый бесполезный отчет о проблеме, который мы получаем - и мы получаем его много. Он ничего не говорит нам о том, что происходит или когда это происходит.
Итак, расскажите нам, что он делает, чего вы не ожидали, или не делает, что вы сделали.
Расскажите нам, что вы сделали, чтобы это произошло.
Сообщайте нам о любых сообщениях об ошибках.
Используйте виджет" улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.

Kornfeld Eliyahu Peter

Насколько я вижу, код делает именно то, что ему велено... Что ты там видишь не так?

MATHUMETHA V

Он не прошел скрытого теста на то, что печатать Твити опасно

2 Ответов

Рейтинг:
7

KarstenK

Потому что ваш ввод в раунде 3 в "повороте 1" равен 0, и он будет работать в вашем коде:

else if(a==0 || b==0 || c==0 ) //here you go in
    {
        printf("Invalid Turn");
    }
    else
    {
        printf("Invalid Turn"); //other else ???
        
    }


твой другой тоже странный. Выход должен быть другим. Дело будет поражено, если будет сделан отрицательный ввод.

Почему бы вам не использовать отладчик и не пройти через ваш код?


Рейтинг:
13

Patrice T

Цитата:
Я не знаю, почему он не выполняется

Используйте отладчик, чтобы узнать, что делает программа.

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

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

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


MATHUMETHA V

Поблагодарить у так много

Patrice T

Добро пожаловать, надеюсь, это помогло понять, что происходит.