2012-10-28 78 views
0

我必須編寫一個程序,讀入英尺和英寸的長度,並輸出等效長度,單位爲米和釐米。我必須創建三個函數:一個用於輸入,一個或多個用於計算,另一個用於輸出;並且包含一個循環,讓用戶重複計算新輸入值,直到用戶說他或她想結束程序。我似乎無法從轉換函數中使用一個函數的輸入,然後通過下一個函數輸出。我怎麼做?謝謝。從英尺到米的單位換算

#include <iostream> 
#include <conio.h> 

using namespace std; 

double leng; 

void length(double leng); 
double conv(double leng); 
void output(double leng); 


int main() 
{ 
    length(leng); 
    conv(leng); 
    output(leng); 

    _getche(); 
    return 0; 
} 

void length(double leng) 
{ 
    cout<<"Enter a length in feet, then enter a length in inches if needed: "; 
    cin>>leng; 
    return; 
} 

double conv(double leng) 
{ 
    return leng = leng * .3048; 
} 

void output(double leng) 
{ 
    cout<<"Your input is converted to "<<leng; 
    return; 
      } 
+6

變量值傳遞。更改參數,除非你按引用傳遞它不會反映在調用者的變化。 – chris

+0

謝謝,我完全沒有意識到。我修好了它。 – user1742419

回答

1

,你有一個全局變量double leng和你的函數同名參數意味着您甚至不必將參數傳遞給任何這些功能的事實。

void length(); 
double conv(); 
void output(); 

但正如克里斯提到的,我認爲你試圖做的是傳遞參考。要小心你如何命名你的函數參數和變量,這令人困惑,它們被命名爲相同。嘗試在您的全局變量前加上g來表示這一點。 gLeng

+2

或者,你能避免使用全局變量和利用的功能參數來代替。 –

0

您錯過了這一點。一英寸不是十分之一英尺。這是一個1/12。

12英寸一腳。因此使用使用撇號的表達式(即,我的身高是6'1)。

一個吋= 2.54cm 一隻腳12英寸。

因此將英制高度存儲在合適的數據結構中。

然後轉換如下

metric = (length.feet * 12 + length.inches) * 2.54) 

這將使您的測量釐米。在C++

相關問題