C ++的功课怎么样

时间:2013-03-13 16:39:44

标签: c++ void

你好,我需要帮助程序,

  

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

1 个答案:

答案 0 :(得分:2)

在C ++中,以下是一项任务:

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

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

你打算写:

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

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

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