ButterBoy42 Ответов: 2

Я очень новичок в программировании, но я в классе. Мне нужна помощь здесь visual studio C#


В принципе, я сделал калькулятор, как и все, кто только начинает, но я пытаюсь что-то добавить к нему, так что это не просто калькулятор.

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

Что я хочу, так это иметь 42 (смысл жизни, ха-ха), чтобы быть "правильным" ответом в этом калькуляторе

Поэтому, когда я умножу 6 на 7 и это будет равно 42, я хочу, чтобы он сказал: "Поздравляю, вы нашли смысл жизни
Но когда ответ больше 42, я должен идти "немного ниже" и, конечно же, меньше 42 "немного выше"



мой код:

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

использование системы;

тест пространства имен
{
классная программа
{
частный статический int num_2;

static void Main(string[] args)
{
{
инт num_1;
инт num_2;

Приставка.Напишите("напишите свой первый номер ");
num_1 = преобразовать.ToInt32(Консоль.Линия чтения());
Приставка.Напишите("напишите свой второй номер ");
num_2 = преобразовать.ToInt32(Консоль.Линия чтения());
Приставка.WriteLine("Resultat:" + num_1 * num_2);
Приставка.Линия чтения();


int x = 42;

если (x == 42)
{
Приставка.WriteLine("правильно, вы нашли смысл жизни");
}

иначе если (x >= 42)
{
Приставка.WriteLine("попробуй немного выше");
}

иначе если (x <= 42)
{
Приставка.WriteLine("попробуй немного пониже");
}

Приставка.Линия чтения();

}

}
}
}

2 Ответов

Рейтинг:
5

OriginalGriff

Итак, первое, что нужно отметить, это то, что при выполнении

Console.ReadLine();
Консольное приложение будет "останавливаться" до тех пор, пока пользователь не нажмет клавишу ENTER. Так что с этим между вашими WriteLine а твой if код, вы не увидите "дополнительные услуги", пока пользователь не нажмет ENTER - что ему не будет предложено сделать!
Console.WriteLine("Resultat: " + num_1 * num_2);
Console.ReadLine();  <<<<<==== REMOVE THIS LINE


int x = 42;

if (x == 42)
Во-вторых, ваш код специально устанавливает x в 42:
int x = 42;
Так что он всегда будет тестироваться против одного и того же значения! Вместо этого установите X в качестве результата вычисления.
В-третьих, если вы проверяете на равенство в основном if тест, то он не может соответствовать никакому равенству в else части - так что не тестируйте на "<=" или ">>=" В else условия, используйте "<" и ">" вместо этого.

Попробовать это:
int x = num_1 * num_2;
Console.WriteLine("Resultat: {0}", x );
if (x == 42)
    {
    Console.WriteLine("Correct, you've found the answer to life, the universe, and everything.");
    }
else if (x < 42)
    {
    Console.WriteLine("Try a little higher.");
    }
else
    {
    Console.WriteLine("Try a little lower.");
    }
Console.ReadLine();


ButterBoy42

Большое вам спасибо OriginalGriff, вы решили мою проблему.
Но у меня есть еще один вопрос.

Как сделать так, чтобы это не закончилось там, так что, если я ошибусь в математике, я смогу попробовать еще раз????

OriginalGriff

Посмотрите в своих курсовых заметках на циклы: "for", "do" и "while" - последнее, вероятно, наиболее полезно для вас в этом упражнении.

ButterBoy42

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

OriginalGriff

Я мог бы ... но тогда ты ничему не научишься!
Напишите себе простой цикл "while" и посмотрите, как далеко вы продвинетесь.
Это может помочь:

https://www.cprogramming.com/tutorial/c/lesson3.html

ButterBoy42

поиграл с ним немного, но не могу понять, куда поставить while loop или что на самом деле писать в нем

OriginalGriff

:смеяться:
Так что перестаньте "играть" и начните "думать"!
Прочтите ссылку - она дает примеры - и подумайте о том, что именно вы пытаетесь сделать. Вы ничего не добьетесь, гадая ...

Рейтинг:
0

F-ES Sitecore

Вы жестко кодируете "x", чтобы быть 42, x должен быть результатом вычисления

Изменить

Console.WriteLine("Resultat: " + num_1 * num_2);
Console.ReadLine();


int x = 42;


к

int x = num_1 * num_2;
Console.WriteLine("Resultat: " + x.ToString());
Console.ReadLine();