繁体   English   中英

超时错误C ++

[英]Timeout error C++

#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;
}

我将此代码用于基本转换(切换练习),并且出现超时错误。 我是cpp的新手,所以如果您觉得这很简单,请不要介意。

另外,如何在此程序中使用conio.h函数,如getch()? 我遇到这个错误:

Enter temprature


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

您的代码在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()不是标准函数,因此尽管您可以在某些平台上使用它们,但在其他平台上将不可用。

嗯,终于找到了错误。 似乎您正在使用JDoodle ,并且未向stdin提供任何输入! 解决起来很简单。 只需单击显示Stdin Inputs...的框,然后在第一行上写下第一个提示的输入,然后在第二行上写下第二个提示的输入。 这是一个示例屏幕截图:

屏幕截图

唯一的问题是每个输出都在同一行上,因此您可能需要在代码中添加几行。

作为第二种解决方案,您可以打开交互模式(stdin输入上方的按钮),这实际上会在运行程序时要求您提供输入。 此解决方案更有意义,因此可能会更好地满足您的需求。

conio.h而言,除非您在Windows计算机上本地工作,否则您将无法使用该标头中的函数(这很好,因为它们是非标准的)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM