[解決済み] カウンター変数:どのように機能するのですか?
2022-02-17 23:07:36
質問事項
10個の整数の平均を計算するソフトを作りました。これはそのコードである。
// Algorithm for computing the average of the grades of a class with the controlled iteration of a counter
#include <iostream>
using namespace std;
int main()
{
int total, // sum of all grades
gradeCounter, // n° of inputted grades
grade, // a single vote
average; // average of grades
// initialization phase
total = 0; //sets the total to zero
gradeCounter = 1; //prepares the counter
// elaboration phase
while ( gradeCounter <= 10 ) { // 10 times cycle
cout << "Enter grade: "; // input prompt
cin >> grade; // input grade
total = total + grade; // adds the grade to the total
gradeCounter = gradeCounter + 1; // increases the counter
}
// end phase
average = total / gradeCounter;
cout << "The class average is " << average << endl;
return 0;
}
さて、私が考えていたのは
average = total / gradeCounter;
に格納されている最後の変数が動作します。
gradeCounter
は10です。
average = total / 10;
が本当の平均値です。なぜこのような不一致が起こるのか、理解できません。
誰か説明してくれませんか?
どのように解決するのですか?
実際に起こっていることは、whileループを実行するたびに
gradeCounter
は、ループの実行回数より1回多くなっています(これは、初期化された
gradeCounter
を1にしてからループを開始します)。この問題を解決するには、次のいずれかの方法をとります。
1)
average = total / (gradeCounter-1);
2)
gradeCounter = 0;
while ( gradeCounter < 10 ) {
cout << "Enter grade: ";
cin >> grade;
total = total + grade;
gradeCounter = gradeCounter + 1;
}
関連
-
[解決済み] string does not name a type Errorが発生するのはなぜですか?
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み] explicit キーワードの意味は?
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] 1ビットのセット、クリア、トグルはどのように行うのですか?
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] Linux上で動作するC++コードのプロファイリングを行うにはどうすればよいですか?
-
[解決済み] 0.1fを0にすると、なぜ10倍もパフォーマンスが落ちるのですか?
-
[解決済み] コンパイル・リンクはどのように行われるのですか?
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++エラー。アーキテクチャ x86_64 に対して未定義のシンボル
-
[解決済み】C++コンパイルタイムエラー:数値定数の前に期待される識別子
-
[解決済み】「corrupted size vs. prev_size」glibc エラーを理解する。
-
[解決済み】cc1plus:エラー:g++で認識されないコマンドラインオプション"-std=c++11"
-
[解決済み】エラー:strcpyがこのスコープで宣言されていない
-
[解決済み】ファイルから整数を読み込んで配列に格納する C++ 【クローズド
-
[解決済み】エラー:free(): 次のサイズが無効です(fast)。
-
[解決済み] [Solved] インクルードファイルが開けません。'stdio.h' - Visual Studio Community 2017 - C++ Error
-
[解決済み】標準ライブラリにstd::endlに相当するタブはあるか?
-
[解決済み】デバッグアサーションに失敗しました