C++ C++;:我的简单计算器程序赢得了';我不能打印出来。我还认为我的变量命名不正确
计算器程序将接受第一个数字、操作和第二个数字的输入 我已经将程序设置为使用条件语句选择操作。然而,程序不输出 我还尝试使用xor逻辑打印错误消息,说明操作选择不当 我认为问题在于我如何使用变量。任何批评或建议都将不胜感激 我是学习C++的新手,所以我想做一个简单的双输入计算器。我试图挑战我对变量和条件语句的理解C++ C++;:我的简单计算器程序赢得了';我不能打印出来。我还认为我的变量命名不正确,c++,C++,计算器程序将接受第一个数字、操作和第二个数字的输入 我已经将程序设置为使用条件语句选择操作。然而,程序不输出 我还尝试使用xor逻辑打印错误消息,说明操作选择不当 我认为问题在于我如何使用变量。任何批评或建议都将不胜感激 我是学习C++的新手,所以我想做一个简单的双输入计算器。我试图挑战我对变量和条件语句的理解 void add_func(); void sub_func(); void mult_func(); void divi_func(); int main() { 双a; 双b; c
void add_func();
void sub_func();
void mult_func();
void divi_func();
int main()
{
双a;
双b;
char op;
库塔;
cout-op;
cout b;
如果(op==1)
cout您需要使用函数参数在函数之间传递值。不同函数中的两个变量永远不是同一个变量,即使它们具有相同的名称
你必须选择是否要做你的cout我很确定:如果(op!=(1^2^3^4))
没有做你认为应该做的事
^
运算符是一个逐位异或运算符,如果两个输入均为0,或如果两个输入均为1,则结果中会给出0位。如果一个输入为1,另一个输入为0,则结果为1
这些运算是从左到右计算的,所以让我们一次处理一个运算。为了清楚结果是如何产生的,我们将包括数字的二进制等价物:
1^2
->0001^0010
->0011
,即3
3^3
->0011^0011
->0000
,即0
0^4
->0000^0100
->0100
,即4
<>你的代码相当于:<代码>(OP!=4) ./P> < P>请考虑使用一个简单的在线教程来学习基础知识。
例如:
或:
另外,在编写代码时,尽量选择最简单的解决方案。
不管怎样,以后事情会变得复杂:)
对于一个简单的计算器来说,一个简单的开关就足够了。
请考虑以下C代码:
#include <iostream>
int main()
{
double a;
double b;
char op;
while(true)
{
std::cout << "Input 1st Number: " << std::endl;
std::cin >> a;
std::cout << "Select Operation: (+) (-) (*) (/) or (x) to exit: " << std::endl;
std::cin >> op;
std::cout << "Input 2nd Number: " << std::endl;
std::cin >> b;
switch (op)
{
case '+':
std::cout << std::to_string(a+b) << std::endl;
break;
case '-':
std::cout << std::to_string(a-b) << std::endl;
break;
case '*':
std::cout << std::to_string(a*b) << std::endl;
break;
case '/':
std::cout << std::to_string(a/b) << std::endl;
break;
case 'x':
return 0;
break;
default:
std::cout << "Invalid Operation Selected" << std::endl;
break;
}
}
}
#包括
int main()
{
双a;
双b;
char op;
while(true)
{
std::cout a;
标准::cout-op;
std::cout b;
开关(op)
{
格“+”:
std::难道add_func()
中的局部变量与main()中声明的变量完全无关吗
。似乎您需要获得a才能了解基本知识。同样,使用op
beingchar
,然后cin>>op
输入一个字符,然后将其ASCII值与1,2,3,4进行比较。因此,选择加法操作的唯一方法是键入Control+V Control+a(至少在Unix系统上)。类似于if(op==1)
的操作将无法运行。您需要执行if(op==1')
,或者op
需要为int。“您需要使用函数参数在函数之间传递值。”好吧,全局范围内的变量也可以执行相同的操作,我不建议这样做:-P。。。
#include <iostream>
int main()
{
double a;
double b;
char op;
while(true)
{
std::cout << "Input 1st Number: " << std::endl;
std::cin >> a;
std::cout << "Select Operation: (+) (-) (*) (/) or (x) to exit: " << std::endl;
std::cin >> op;
std::cout << "Input 2nd Number: " << std::endl;
std::cin >> b;
switch (op)
{
case '+':
std::cout << std::to_string(a+b) << std::endl;
break;
case '-':
std::cout << std::to_string(a-b) << std::endl;
break;
case '*':
std::cout << std::to_string(a*b) << std::endl;
break;
case '/':
std::cout << std::to_string(a/b) << std::endl;
break;
case 'x':
return 0;
break;
default:
std::cout << "Invalid Operation Selected" << std::endl;
break;
}
}
}