2012-04-11 8 views
0

1週間で働くすべての時間を加算する方法を調べようとしています。 「時間」は1週間に作業した時間を表し、「hoursDay」は1日に作業した時間を表します。唯一の問題は、すべてが同じ名前で表されているときにそれらをすべて追加する方法を考え出すことです。以下は私のコードです:(感謝)C++週の曜日を加算するための計算式

cout << "Enter hours worked for day 1: "; 
    cin >> hoursDay; 
    cout << endl; 

    while (hoursDay < 0 || hoursDay > 10) 
    { 
     cout << "Invalid number of hours - must be between 0 and 10."; 
     cout << endl; 
     cout << "Enter hours worked for day 1: "; 
     cin >> hoursDay; 
    } 

    cin.ignore (1); 

    cout << "Enter hours worked for day 2: "; 
    cin >> hoursDay; 
    cout << endl; 

    while (hoursDay < 0 || hoursDay > 10) 
    { 
     cout << "Invalid number of hours - must be between 0 and 10."; 
     cout << endl; 
     cout << "Enter hours worked for day 2: "; 
     cin >> hoursDay; 
    } 

    cin.ignore (1); 

    cout << "Enter hours worked for day 3: "; 
    cin >> hoursDay; 
    cout << endl; 

    while (hoursDay < 0 || hoursDay > 10) 
    { 
     cout << "Invalid number of hours - must be between 0 and 10."; 
     cout << endl; 
     cout << "Enter hours worked for day 3: "; 
     cin >> hoursDay; 
    } 

    cin.ignore (1); 

    cout << "Enter hours worked for day 4: "; 
    cin >> hoursDay; 
    cout << endl; 

    while (hoursDay < 0 || hoursDay > 10) 
    { 
     cout << "Invalid number of hours - must be between 0 and 10."; 
     cout << endl; 
     cout << "Enter hours worked for day 4: "; 
     cin >> hoursDay; 
    } 

    cin.ignore (1); 

    cout << "Enter hours worked for day 5: "; 
    cin >> hoursDay; 

    while (hoursDay < 0 || hoursDay > 10) 
    { 
     cout << "Invalid number of hours - must be between 0 and 10."; 
     cout << endl; 
     cout << "Enter hours worked for day 5: "; 
     cin >> hoursDay; 
    } 

    cin.ignore (1); 

    hours = hoursDay; 

    cout << endl; 
    cout << endl; 
    cout << "Total hours for week is " << hours; 

答えて

0

The only problem is figuring out how to add them all when they are all represented by the same name.あなたがこの問題を解決することができますが、それらのどれもが、少なくとも一つの追加の変数を追加することなく、可能ではない、いくつかの方法があります。

単純な方法は、新しい変数、int totalHours(または使用しているものをfloatまたはdouble)を追加し、ゼロにあらかじめ初期化することです。次に、入力ごとにtotalHours += hoursDay;と設定します。

1

ちょうどあなたが入力し、それをhours += hoursDay;

時間に毎回hoursDayを追加し、これが始めての練習のように見えるので、あなたが持っていないかもしれませんが(ループ

を使用し、あなたのコードを5回繰り返していませんまだループ)

1

をカバーforループを使用してみてください:

int hours=0; 
for(int i=0;i<5;i++){ 
    int hoursday; 
    cout << "enter hours worked in day " << i+1 << ":" ; 
    while(cin>>hoursday){ 
     if(hoursday>0 && hoursday<10){ 
      hours+=hoursday; 
      break; 
     } 
     else{ 
      continue; 
     } 
    } 
} 

cout <<"total hours in the week : "<< hours << endl; 
+0

'else {continue; } 'は余分です。もしコードが 'if'を取っていなければ、それらの3行を省略しても繰り返します。 –

1

は、あなたが初心者でいるようだ、プロのあなたのエラーがたくさんありますグラム。しかし、私はあなたに違った考え方をお祝いしましょう。

あなたのプログラムが振る舞い方をするには、少なくとも変数を0に設定してから、それに日数を追加する必要があります。私はあなたのコードの改善版を投稿しています。効果があるかどうかを確認するには、それをコピーしてコンパイラに貼り付けて、結果を確認してください。

コードは次のようになります。まあ私のインデントは変です...

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

void main() 
{ 
    int hoursDay; 
     hoursDay=0; 
     int hoursday; 
     for(int k=1;k<=5;k++) 
      { 
       cout<<"Enter hours worked for day"<<k<<"\n"; 
       cin>>hoursday; 
       if(hoursday>0&&hoursday<10) 
        { 
          hoursDay=hoursDay+hoursday; 
        } 
       else 
         { 
          cout<<"\ninvalid input"; 
          } 

           } 
      int hours = hoursDay; 

      cout << endl; 
      cout << endl; 
      cout << "Total hours for week is " << hours; 
    getch(); 
}  
+0

*「あなた」と「あなた」の代わりに「u」と「ur」を使用しないでください。ここの読者の多くは、第1言語として英語を使用していないため、間違った使い方をすると理解しにくくなります。 –

+0

@ AndrewBarber、OKのバディは、これからも心に留めておきます!GD! – Deepeshkumar

関連する問題