2017-09-16 11 views
0

私は最近、main以外のいくつかの関数を持つプログラムを作成しようとしましたが、何らかの理由で "宣言がすべての変数と関数と互換性がありません。メイン以外の関数を使用する簡単な方法はありますか?変数を相互に参照できますか?私が受け取るエラーは:E0147です。これは私のコードです:関数にいくつかの問題があり、それらがmainと干渉する方法

#include <iostream> 
using namespace std; 
int dager; 
int mintemp; 
int maxtemp; 
int nedbor; 
int i = 1; 
int j; 
int mintempg; 
int maxtempg; 
int nedborg; 

int mintemp() { 
    cout << "hva er dag:" << i << " sin min temp? \n"; 
    cin >> mintempg; 

    if (mintempg >= -70 && mintempg <= 70) 
    { 
     mintemp += mintempg; 
    } 
    else 
    { 
     cout << "ugyldig temperatur."; 
     mintemp(); 
    } 
} 
int maxtemp() { 
    cout << "hva er dag:" << i << " sin max temp? \n"; 
    cin >> maxtempg; 

    if (maxtempg >= mintempg && maxtemp <= 70) 
    { 
     maxtemp += maxtempg; 
    } 
    else 
    { 
     cout << "ugyldig temperatur."; 
     maxtemp(); 
    } 
} 
int nedbor() { 
    cout << "hva er dag:" << i << " sin mm nedbør? \n"; 
    cin >> nedborg; 

    if (nedborg >= 0 && nedborg <= 200) 
    { 
     nedbor += nedborg; 
    } 
    else 
    { 
     cout << "ugyldig mengde nedbor."; 
     nedbor(); 
    } 
} 



int main() { 
    cout << "Hvor mange dager er det i måneden? " << "\n"; 
    cin >> dager; 


    for (j = dager; j > 0; j--) { 
     if (dager >= 28 && dager <= 31) 
     { 
      mintemp(); 

      maxtemp(); 

      nedbor(); 

      i++; 
     } 
    } 
    system("pause"); 
} 

あなたが見ることができるように、それは私はそれのすべてがメインになりたくなかったことを決めた理由である、このようにそれを行うには、私のコードに読みやすさの多くを提供します。また、後でコードを再利用するのが容易になります。

サイド質問:システムを使わずにコードを実行するたびに、コンパイラを閉じることができない方法がありますか(「一時停止」)。 ?私は私の講義の1つで教授のことを言及している私の教授を思い出しているようですが、私はそれをよく捉えていませんでした。とにかくすべての感謝を助ける!

+0

あなたは、変数名 'foo'と' FOO(という名前の関数を使用することはできません) '。 C++はこのように動作しません。それはそれと同じくらい簡単です。 –

+0

ありがとう!知りませんでした。しかし、関数が値を返さなければならないと言うと、 "void functionmame()"を使うか、またはint関数が0を返すことに違いがありますか? –

+1

1つは何も返さないvoid関数です。もう1つは 'int'値を返す関数です。それは違いです。 –

答えて

-1

ウィンドウがこのポストを見るのを閉じるのを防ぐために。

- Visual Studioを使用していて、コンソールアプリケーションをIDEから起動している場合:CTRL-F5(デバッグなしで起動)を押すとアプリケーションが起動し、任意のキーを押すまでコンソールウィンドウが開いたままになります。

- std :: getchar();を挿入できます。あなたの主な機能の終わりに。関数はに含まれています。

参照:stackoverflow.com/questions/2529617/...

+0

このリンクは質問に答えるかもしれませんが、答えの本質的な部分をここに含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューから](/レビュー/低品質の投稿/ 17348973) – EJoshuaS

関連する問題