de-vraag
  • 質問
  • タグ
  • ユーザー
通知:
報酬:
登録
登録すると、質問に対する返答やコメントが通知されます。
ログイン
すでにアカウントをお持ちの方は、ログインして新しい通知を確認してください。
追加された質問、回答、コメントには報酬があります。
さらに
ソース
編集
 user975452
user975452
質問

コードは最後のデフアル値を追加していません

私はイントロをプログラミングクラスに書くためのアプリケーションを書いています。 キーボードを使用して50から100までの正の整数を入力するようにユーザーに促す簡単なプログラムを設定します。プロンプトは、入力プロセスを停止するために、ユーザーに負の数を入力するように指示する必要があります。

ユーザーが数字を入力すると、有効な入力の数(許可された範囲内の数字)を記録し、それらの数字のエントリを追加する必要があります。入力した1つの数値、数、および現在計算している合計数を超える値を格納する必要はありません。

ユーザーがデータ入力を完了すると、次のような出力が生成されます。

A total of 5 values were entered.
The sum of those numbers is 127

1つの変数を持つプログラムを作成し、ユーザーを取得します

ここに私が書いたコードです

#include 
#include 

using namespace std;

int main(int argc, char *argv[]) {

int loop = 1;
int value;
int times = 0;

cout << "Enter a negavtive number to quit" << endl;
cout << "\nPlease Enter Any Number Between 50 - 100" << endl;

while (loop == 1) {      
cin >> value;
times++;
value += value;
  if(value < 0) {
    cout << "You entered " << times - 1 << " numbers" << endl;
    cout << "Total: " << value << endl;
    system("PUASE");
    return EXIT_SUCCESS;
    }// end if statement
} //end while loop

system("PAUSE");
return EXIT_SUCCESS;
}

Here is the output http://www.flickr.com/photos/[email protected]/6286454476/

私は、int値を使って2つの異なるタスクを実行しているという事実とは関係があると思います。 これを修正するにはどうすればいいですか?

リビジョン

thanks to all of you for the "fix" I add a new variable and it works like a charm, but now the math is not adding correctly http://www.flickr.com/photos/[email protected]/6286526294/in/photostream

0 2011-10-27T15:43:54+00:00 4
 user975452
user975452
編集された質問 27日 10月 2011 в 4:17
プログラミング
c++
Jon
27日 10月 2011 в 3:46
2011-10-27T15:46:50+00:00
さらに
ソース
編集
#56790254

いくつかの問題がありますが、主なものは次のとおりです。

cin >> value;

これは、 " value をユーザーが入力した数値で上書きする"ことを意味します。上書きするため、値を value に保存することはできません。毎回新しい番号で

解決策:別の変数を使用して、実行中の合計を保持します。

あなたはまたあなたがしていることにバグがあります

times++;
value += value;//which as described above will not "stick"

before checking if value is negative. These operations should only be performed when value is not negative; otherwise, data entry should stop immediately and the negative number should not be taken into account for summing the total.

3
0
Anders K.
27日 10月 2011 в 3:47
2011-10-27T15:47:22+00:00
さらに
ソース
編集
#56790255

合計を保持するための合計変数を追加すると、すべてのループ反復で入力値を上書きします。

sum += value;
1
0
bames53
27日 10月 2011 в 3:49
2011-10-27T15:49:41+00:00
さらに
ソース
編集
#56790256

2つの異なる作業を行うために value を使用しないでください。

sum という別の変数を作成し、そこに合計を累積します。

ユーザーが番号を入力するたびに、あなたがあなたの合計金額を書いていることをやっている方法:

cin >> value;//sum of previous values is overwritten!

また、ユーザーが負の数を入力したときに、合計に加算するという別の問題もあります。

0
0
skm
27日 10月 2011 в 5:04
2011-10-27T17:04:57+00:00
さらに
ソース
編集
#56790257

コードでは、値が範囲内にあるかどうか(つまり50〜100)はチェックされません。次のように追加を行う行に条件を設定できます。

if (value >= 50 && value <= 100)
sun += value;

また、 'value'を使ってループを中断することもできます。

0
0
質問の追加
カテゴリ
すべて
技術情報
文化・レクリエーション
生活・芸術
科学
プロフェッショナル
事業内容
ユーザー
すべて
新しい
人気
1
Roxana Elizabeth CASTILLO Avalos
登録済み 6日前
2
Hideo Nakagawa
登録済み 1週間前
3
Sergiy Tytarenko
登録済み 1週間前
4
shoxrux azadov
登録済み 1週間前
5
Koreets Koreytsev
登録済み 1週間前
© de-vraag :年
ソース
stackoverflow.com
ライセンス cc by-sa 3.0 帰属