-1

您好,我需要有关程序的帮助,

数据: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

4

1 回答 1

2

在 C++ 中,以下是赋​​值:

if(a=0 && f>0 && m>0)
    ^ THIS

它设置为零,然后在计算表达式的其余部分时a将该零视为布尔值 ( )。false

你的意思是写:

if(a==0 && f>0 && m>0)
    ^^

这个错误在几个地方重复出现,并解释了为什么你得到零。

在构建代码时启用编译器警告是个好主意。这是一个好的编译器会发现并警告您的错误之一。

于 2013-03-13T16:41:44.717 回答