0

1 週間のすべての作業時間を合計する方法を見つけようとしています。「hours」は 1 週間の労働時間を表し、「hoursDay」は 1 日の労働時間を表します。唯一の問題は、それらがすべて同じ名前で表されている場合に、それらをすべて追加する方法を考え出すことです。以下は私のコードです:(ありがとう)

    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;
4

4 に答える 4

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();
}      
于 2012-10-31T15:58:45.323 に答える
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;
于 2012-04-11T23:04:58.467 に答える
1

入力するたびにhoursDayをhoursに追加するだけですhours += hoursDay;

コードを 5 回繰り返さないで、ループを使用してください

(ただし、これは初心者向けの演習のように見えるため、まだループをカバーしていない可能性があります)

于 2012-04-11T22:25:41.980 に答える
0

The only problem is figuring out how to add them all when they are all represented by the same name.これを解決する方法はいくつかありますが、少なくとも 1 つの追加変数を追加しない限り、解決することはできません。

簡単な方法は、新しい変数int totalHours(または使用している float または double) を追加し、事前にゼロに初期化することです。次に、各入力で を設定しtotalHours += hoursDay;ます。

于 2012-04-11T22:25:38.513 に答える