2013-03-13 54 views
-1

你好,我需要與程序的幫助,C++的功課如何

數據:a = 8,5,0,F = 4,0,8,M = 0,2,4

其中是0我需要一個公式來計算的:α= 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; 
} 

結果必須是= 8,5,2 F = 4,10,8米= 0,2,4 但我的結果是a = 0,0,0 f = 0,0,0 m = 0,0,0

+1

在啓用警告的情況下編譯(甚至更好:將警告作爲錯誤)會立即給出問題的原因。 – ereOn 2013-03-13 16:46:16

回答

2

在C++中,下面是一個賦值:

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

它設置a爲零,然後把該零爲布爾值(false)計算表達式的其餘部分時。

你的意思是寫:

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

這個錯誤是在幾個地方反覆解釋了爲什麼你要零。

在構建代碼時啓用編譯器警告是一個好主意。這是一個好的編譯器會發現並警告你的錯誤之一。

+0

謝謝,它的工作! – darius 2013-03-13 16:46:17