【发布时间】:2020-12-28 03:43:53
【问题描述】:
我做了一个将数字转换为罗马数字的程序,当 .exe 文件不起作用时,我正要向我的朋友展示它。它询问用户输入哪个号码,在他输入后程序关闭。我不明白的是为什么它在 DevC++ 上编译后确实可以工作,但作为 .exe 的行为却不同
我发现很少有解决方案,对我有用的一个是添加:
int a;
cin>>a;
在返回 cero 之前。现在它起作用了。我不明白控制台如何不执行没有它给出的操作。我把代码留在这里。
#include <iostream>
using namespace std;
int main(){
int numero, unidades, decenas, centenas, millares;
int comprobante;
cout<<"Este programa traduce un numero de 4 cifras a numeros romanos.\nDigite un numero de
maximo cuatro cifras: ";
cin>>numero;
unidades= numero%10;
numero /= 10;
decenas= numero%10;
numero/=10;
centenas= numero%10;
numero/=10;
millares=numero;
comprobante=millares/10;
if(comprobante==0){
cout<<"Su numero traducido a numeros romanos es: ";
switch(millares){
case 1: cout<<"M"; break;
case 2: cout<<"MM"; break;
case 3: cout<<"MMM"; break;
}
switch(centenas){
case 1: cout<<"C"; break;
case 2: cout<<"CC"; break;
case 3: cout<<"CCC"; break;
case 4: cout<<"CD"; break;
case 5: cout<<"D"; break;
case 6: cout<<"DC"; break;
case 7: cout<<"DCC"; break;
case 8: cout<<"DCCC"; break;
case 9: cout<<"CM"; break;
}
switch(decenas){
case 1: cout<<"X"; break;
case 2: cout<<"XX"; break;
case 3: cout<<"XXX"; break;
case 4: cout<<"XL"; break;
case 5: cout<<"L"; break;
case 6: cout<<"LX"; break;
case 7: cout<<"LXX"; break;
case 8: cout<<"LXXX"; break;
case 9: cout<<"XC"; break;
}
switch(unidades){
case 1: cout<<"I"; break;
case 2: cout<<"II"; break;
case 3: cout<<"III"; break;
case 4: cout<<"IV"; break;
case 5: cout<<"V"; break;
case 6: cout<<"VI"; break;
case 7: cout<<"VII"; break;
case 8: cout<<"VIII"; break;
case 9: cout<<"IX"; break;
}
}
else{
cout<<"Te dije de 4 cifras. Por desgraciado me cierro.";
}
int a;
cin>>a;
return 0;
}
【问题讨论】:
-
Relevant Q with no accepted A,因此不能被标记为重复。你没有 return 语句,但声明了 int main ,它期望返回一些东西,所以编译器只需要运行它,它就被打破了,但无论如何都构建了 exe。
-
我不明白,我确实有返回 0;之前的声明。我添加的完全是 int a,; cin>>a;
-
没有。对不起。可能行为取决于您使用的编译器和/或设置,但关于 C++ 的 IDK 足以帮助解决这些问题。
标签: c++ compiler-errors console dev-c++