你好,我需要帮助程序,
数据:a = 8,5,0,f = 4,0,8,m = 0,2,4
其中是0我需要用公式计算:a = f / m 所以这是我的代码:
//Antrasis Niutono desnis
#include <fstream>
#include <iostream>
using namespace std;
//---------------------
void Odpowiedzi(int & a,int & f,int & m);
//---------------------
const char read[] = "duomenys1.txt";
const char result[] = "rezultatai1.txt";
//---------------------
int main() {
ifstream rd(read);
ofstream rs(result);
int n,a,f,m;
rd >> n;
for(int i = 1; i <= n;i++) {
rd >> a >> f >> m;
Odpowiedzi(a,f,m);
rs << a << " " << f << " " << m << endl;
}
rd.close();
rs.close();
return 0;
}
void Odpowiedzi(int & a,int & f,int & m)
{
if(a=0 && f>0 && m>0)
a=f/m;
else if(f=0 && a>0 && m>0)
f=m*a;
else if(m=0 && a>0 && m>0)
m=f/a;
}
结果必须是a = 8,5,2 f = 4,10,8 m = 0,2,4 但我的结果是a = 0,0,0 f = 0,0,0 m = 0,0,0
答案 0 :(得分:2)
在C ++中,以下是一项任务:
if(a=0 && f>0 && m>0)
^ THIS
它将a
设置为零,然后在评估表达式的其余部分时将该值视为布尔值(false
)。
你打算写:
if(a==0 && f>0 && m>0)
^^
这个错误在几个地方重复,并解释了为什么你会得到零。
在构建代码时启用编译器警告是个好主意。这是一个好的编译器会发现并警告你的错误之一。