簡體   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