所以通常经过一夜的“喝酒”之后,我回家并通过编程来检查醉酒的程度。我决定制作一个计算器程序。我收到了一个错误,现在我无法入睡。有人可以请我摆脱这种痛苦。这段代码有什么问题?
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
double num1;
double num2;
char redo;
char operation;
do
{
cout<< "Please enter your calculation "<< endl;
cin >> num1 >> operation >>num2;
switch operation {
case '+':
cout<< "" <<num1+num2 << endl;
break;
case '/':
cout<< "" <<num1/num2 << endl;
break;
case '*':
cout<< "" <<num1*num2 << endl;
break;
case '/':
cout<< "" <<num1/num2 << endl;
break;
}
while (redo=='y'||redo=='Y');
system("PAUSE");
return EXIT_SUCCESS;
}
我的第一个调试错误是在cout ..我无法入睡:(
YAY!我没醉!!我得到了它的工作! Thajink youou giusy所以mcuh !! 哦,继续代码btw:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
double num1;
double num2;
char redo;
char operation;
do
{
cout<< "Please enter your calculation "<< endl;
cin >> num1 >> operation >>num2;
switch (operation) {
case '+':
cout<< num1+num2 << endl;
break;
case '-':
cout<< num1-num2 << endl;
break;
case '*':
cout<< num1*num2 << endl;
break;
case '/':
cout<< num1/num2 << endl;
break;
}
cout<<" Do you want to continue? ";
cin>>redo; }
while (redo=='y'||redo=='Y');
}
答案 0 :(得分:2)
您的程序缺少switch
语句的结束大括号;我不确定将代码复制到帖子中是否存在错误,或者这是否是造成你的困境的原因。
在一个有些不相关的说明中,我注意到你的代码中的几个地方你已经写过了
cout<< "" <<num1+num2 << endl;
在打印出总和之前,您不需要打印空字符串;你可以写
cout<< num1 + num2 << endl;
您可能遇到的另一个问题是您的代码循环使用此条件:
while (redo=='y'||redo=='Y');
但是,您的代码永远不会为redo
赋值,因此这具有未指定的行为 - 它可以永久循环,或者只循环一次。
希望这有助于解决问题!
答案 1 :(得分:0)
哪个cout
?你在程序中使用它5次。
您正在阅读redo
,而无需为其分配值。这不太可能正常工作。
答案 2 :(得分:0)
你的第二种情况应该是' - '而不是'/'。没有足够的结束括号。
这对我有用:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
double num1;
double num2;
char redo;
char operation;
do
{
cout<< "Please enter your calculation "<< endl;
cin >> num1 >> operation >>num2;
switch (operation )
{
case '+':
cout<< "" <<num1+num2 << endl;
break;
case '-':
cout<< "" <<num1-num2 << endl;
break;
case '*':
cout<< "" <<num1*num2 << endl;
break;
case '/':
cout<< "" <<num1/num2 << endl;
break;
}
}
while (redo=='y'||redo=='Y');
system("PAUSE");
return EXIT_SUCCESS;
}
答案 3 :(得分:0)
我可以看到一些错误:
}
阻止了大括号switch
。
switch中的条件应该在括号中:
switch (operation) {
^ ^
有重复case '/'
。案例-
缺失。
变量redo
未经初始化使用。您需要询问用户是否要继续。阅读变量redo
中的响应。