jdoodle — ошибка времени ожидания переполнения стека

#include <iostream>
// #include <conio>
using namespace std;
int main(){
int choice;
double temp, result;
std::cout <<"Enter temprature";
std::cin>>temp;
std::cout<<"Enter number between 1 or 2";
std::cin>>choice;
switch (choice){
case 1 :
result = (5*temp /9) - 32;
std::cout<<"answer is" <<result<<"C \n";
break;
case 2 :
result = (9/5*temp) + 32;
std::cout <<"answer" <<result<<"F";
break;
default :  std::cout<<"Wrong number";
}
return 0;
}

Я использую этот код для базового преобразования (практика переключения), и появляется ошибка Timeout. Я новичок в cpp, поэтому, пожалуйста, не возражайте, если вам будет легко.

Кроме того, как я могу использовать функции conio.h, такие как getch () в этой программе?
Я сталкиваюсь с этой ошибкой:

Enter tempratureTimeout -  Some common reasons for Timeout
Your Program may have a endless loop

-1

Решение

Ах, наконец-то нашел ошибку. Кажется, что вы используете JDoodle, и не предоставил никакого ввода в stdin! Это довольно просто решить. Просто нажмите на поле с надписью Stdin Inputs...и в первой строке введите ввод для первого приглашения, а во второй — для ввода второго запроса. Вот пример скриншота:

Скриншот

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

В качестве второго решения вы можете включить интерактивный режим (кнопка прямо над входами stdin), который фактически запрашивает ввод во время работы программы. Это решение может лучше удовлетворить ваши потребности, так как оно имеет больше смысла.

Так далеко как conio.h идет, вы не сможете использовать функции из этого заголовка (что хорошо, так как они нестандартные), если вы не работаете локально на компьютере Windows.

1

Другие решения

Ваш код компилируется в MSVS 2015 и, кажется, работает.

Это:

result = (5*temp /9) - 32;

это не правильная формула. Так должно быть

result = 5 * (temp - 32) / 9;

Это:

result = (9/5*temp) + 32;

страдает от целочисленного переполнения. Так должно быть:

result = (9.0 / 5 * temp) + 32;

или же

result = (9 * temp / 5) + 32;

Как я могу использовать функции conio.h, такие как getch () в этой программе?

conio.h не стандартный заголовок и getch() не является стандартной функцией, поэтому, хотя вы можете использовать их на некоторых платформах, они не будут доступны на других.

1

По вопросам рекламы [email protected]