Noob在这里:)嗨。试图自学c ++!
下面的代码应该问我:我想做什么样的操作,变量:`int f;'
我知道问题来自res = a f b;
,我非常确定这是一个非常糟糕的错误代码..我不确定该怎么办?
任何想法?
#include <iostream>
using namespace std;
int main()
{
int a;
int b;
int sum;
int f;
cout << "wahts the first number" << endl;
cin >> a;
cout << " '+'? '-'? '*'? or '/'? " << endl;
cin >> f;
cout << "whats the second number" << endl;
cin >> b;
res = a f b;
cout << "answer is: " << res << endl;
return 0;
}
答案 0 :(得分:0)
您需要考虑一些事项。
f
是一项操作,如果您想进行通用操作,则应该类似于std::function
而不是int
。 int
包含一种数字。std::function
,因为您可以执行一系列不同的操作(乘法,加法,减法,除法)。您无法将其分配给f
并希望它能够正常运行。您需要conditional statements来决定从输入中执行的操作。您还应该处理不是其中一个选项的输入。你想把这个逻辑中的一部分放到一个不同的函数中,以使一切变得美好和有条理。res = a f b
无法上班,因为您从未定义过res
和a f b
不是有效代码。您已定义sum
而未使用它,因此您可能意味着res
。像a f b
这样的表达式不起作用,除非中间是特殊的(operator,事实上,只有某个运算符子集会形成这样的表达式。)using namespace std
提出建议,因为它会污染您的本地命名空间并导致错误,尤其是在更新代码时。当您遇到这样的问题时,请对您遇到的问题进行一些关键术语的谷歌搜索。这开始有点困难,因为你不总是知道google的条款,但从长远来看会帮助你。首先尝试编译程序并逐个解决这些错误,直到成功编译,然后尝试找出与您在程序的每个步骤中所期望的相比得到的输出。 / p>
答案 1 :(得分:0)
您的变量f
属于int
类型,当输入+
或任何运算符时cin
将设置错误标记,因为您试图存储{{1}在char
变量和int
中将继续忽略命令并可能导致系统崩溃。
并且变量不能仅仅因为它包含cin
或任何其他运算符而不能使用运算符。并且您没有声明任何变量'+'
我认为您的意思是res
但是它最好使用变量就像结果一样,因为它更有意义
(想象一下代码sum
!!它更好sum = a * b
)。
你应该
result = a * b
或if else
或switch
运算符。
看看CPP Tutorials decision making 虽然我认为你应该从here
开始我认为你的代码应该是
?:
PS 如上所示学会正确打算,它将帮助您找到大块代码中的错误并使其更易于理解。并且还避免使用int main()
{
int result, a, b;
char f;
std::cout << "what is the first number \n ";
std::cin >> a;
std::cout << " '+' '-' '*' or '/'? \n";
std::cin >> f;
std::cout << "whats the second number \n";
std::cin >> b;
if (f == '+')
result = a + b;
else if (f == '-')
result = a - b;
else if (f == '*')
result = a * b;
else if (f == '/')
{
if(b == 0)
{
std::cout<<"Division by zero!!\n";
system("pause");
return 0;
}
result = a / b;
}
else
{
std::cout<<"Sorry wrong operator \n";
system("pause");
return 0;
}
std::cout << "answer is: " << result << '\n';
return 0;
}
指令,因为如果您具有与using namespace
中的名称相同的本地函数或变量,它可能会污染本地范围并产生问题。并尝试着一本好书开始。我也开始自学。