我为数学问题编写了以下代码,并且不会将其写入输出文件“ coada2.out”。
#include <iostream>
#include <fstream>
using namespace std;
int main() {
int sum = 0, x, y, z;
ifstream file_in("coada2.in");
file_in >> x >> y >> z;
file_in.close();
ofstream file_out;
file_out.open ("coada2.out");
sum=x+2;
if((y+1 || z+1) == sum) {
file_out << sum;
file_out.close();
}
else{
cout<<"-1";
}
return 0;
}
答案 0 :(得分:4)
问题是这一行:
if((y+1 || z+1) == sum) {
y+1 || z+1
的计算结果为true或false,这意味着if
的主体只能在sum
为0或1的情况下执行。
您可能的意思是:
if(y+1==sum || z+1==sum) {