私はプログラミングがまったく初めてで、最近このサイトを見つけて自己啓発に役立てています。「C」を使用して、本の中で3つの異なるカテゴリの成績を求めるプログラムを作成しようとしています.whileステートメントに遭遇し、これを行うのに最適な場所を見つけました。私の現在のコードは次のようになります。
int countA;
int gradeA;
int totalA;
int weightA;
float averageA;
int countE;
int gradeE;
int totalE;
int weightE;
float averageE;
int countQ;
int gradeQ;
int totalQ;
int weightQ;
float averageQ;
totalA = 0;
countA = 0;
totalE = 0;
countE = 0;
totalQ = 0;
countQ = 0;
printf( "Enter Assignment Grade, -1 to end: "); /* prompt for input */
scanf( "%d", &gradeA );
while (gradeA != -1){
totalA = totalA + gradeA; /* add gradeA to totalA */
countA = countA + 1;
printf( "Enter Assignment Grade, -1 to end: "); /* prompt for input */
scanf( "%d", &gradeA );
}
if (countA != 0) {
averageA = (float) totalA / countA;
printf( "total is %.2f\n", averageA );
}
printf( "Enter Exam Grade, -1 to end: "); /* prompt for input */
scanf( "%d", &gradeE );
while (gradeE != -1){
totalE = totalE + gradeE; /* add gradeE to totalE */
countE = countE + 1;
printf( "Enter Exam Grade, -1 to end: "); /* prompt for input */
scanf( "%d", &gradeE );
}
if (countE != 0) {
averageE = (float) totalE / countE;
printf( "total is %.2f\n", averageE );
}
printf( "Enter Quiz Grade, -1 to end: "); /* prompt for input */
scanf( "%d", &gradeQ );
while (gradeQ != -1){
totalQ = totalQ + gradeQ; /* add gradeQ to totalQ */
countQ = countQ + 1;
printf( "Enter Quiz Grade, -1 to end: "); /* prompt for input */
scanf( "%d", &gradeQ );
}
if (countQ != 0) {
averageQ = (float) totalQ / countQ;
printf( "total is %.2f\n", averageQ );
}
この時点で私がやろうとしているのは、プロセスをさらに2回繰り返すことですが、exeを実行しようとすると、最初の部分が実行されますが、他の2つの部分は何らかの理由で起動しません. これは単に while ステートメントが行うことを制限するためのものですか? または、どこかにエラーがありますか。私は自分が間違っていることを理解しようとしていますが、それを見るだけです。
ここに適切に投稿する方法についてはまだよくわかりませんが、これは私が得た出力の例です。
これは私の出力の例です。割り当て部分である最初のセグメントを求めるプロンプトが表示されますが、ループを終了するために -1 を入力すると、平均が得られて終了します。
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin>project1.exe
Enter Assignment Grade, -1 to end: 100
Enter Assignment Grade, -1 to end: 80
Enter Assignment Grade, -1 to end: 77
Enter Assignment Grade, -1 to end: 33
Enter Assignment Grade, -1 to end: 76
Enter Assignment Grade, -1 to end: 92
Enter Assignment Grade, -1 to end: -1
total is 76.33
少なくとも最初の部分は機能していると思いますが、合計を取得した後、次の外観を求められず、試験の成績を求められます。