以下代码编译没有任何错误,但是当我尝试做2 * 1(或任何其他不是1的数字)时,ans函数中的字符串“Inte ok”没有写在屏幕上程序刚退出 这是为什么?
//Test för att se om jag förstår funktioner
#include <iostream>
#include <string>
using namespace std;
//Deklarerar variblar som jag ska använda
int a,b,x;
string s, ab;
//Skriver ut funktionen för att multiplicera
int multi(int a, int b)
{
x = a * b;
return x;
}
string ans()
{
using std::string;
string s = "Inte ok";
ab = s;
return ab;
}
//Samlar in värde från användaren, skickar den till funtktionen "multi" som multiplicerar den, sedan skickar den tillbaks den till main via return. Main visar sedan
//resultatet för användaren
int main( void )
{
using std::cout;
using std::cin;
using std::string;
cout << "Ange ett nummber som du vill multiplicera: \n\n";
cin >> a;
cout << "\n";
cout << "Ange det andra nu: \n";
cin >> b;
cout << "\n";
if(a == 1)
{
multi(a,b);
cout << "Svaret är: " << x << "\n";
}
else if (a =! 1)
{
ans;
cout << "\n" << ab;
}
return 0;
}
祝你好运。
答案 0 :(得分:12)
a =! 1
不是您认为的那样。这是一项将!1
(产生0
)分配给a
的作业,因此该条件永远不会成立。不等式运算符为!=
,但您只需要else
,没有其他条件。另外,要调用函数ans
,您需要执行ans()
:
if (a == 1) {
multi(a, b);
// ...
} else {
ans();
// ...
}