2017-11-03 4 views
2

これは先生が私に与えた課題です。数日後にそれを稼働させようとしていて、原因を見つけることができません問題。値を保存しようとすると-1を使用して結果を出力しますが、プログラム自体が終了します

私が入力したコードは、2012バージョンのVisual Studioで動作し、2017バージョンを使用しているときは、コンソールに-1と入力するとコードが閉じて、私はそれを取得できません。欲しいです。私の理解へ

#include <stdio.h> 
int main() 
{ 
int grades = 0; 
int counter = 0; 
int A = 0; 
int B = 0; 
int C = 0; 
int D = 0; 
int E = 0; 

do 
{ 
     counter++; 
     printf("Please enter grade between 0 to 100 or -1 to quit:"); 
     scanf_s("%d", &grades); 
     if (grades != -1){ 

     if (grades >= 90 && grades <= 100) 
      A++; 
     else if (grades >= 80 && grades <= 89) 
      B++; 
     else if (grades >= 70 && grades <= 79) 
      C++; 
     else if (grades >= 60 && grades <= 69) 
      D++;   
     else if (grades >= 0 && grades <= 59) 
      E++; 
     else counter--; 
     } 
     else 
      counter--; 
     } 
while (grades != -1); 

     printf("Total Number of Grades = %d\n\n", counter); 
     printf("Number of grade A: %d\n", A); 
     printf("Number of grade B: %d\n", B); 
     printf("Number of grade C: %d\n", C); 
     printf("Number of grade D: %d\n", D); 
     printf("Number of grade E: %d\n", E); 

     return 0; 
} 
+1

「自分で閉じる」とはどういう意味ですか?コンソールウィンドウは閉じていますか? Visual Studioからコンソールアプリケーションを起動すると、最後に 'pause'の呼び出しが追加されるので、出力を見ることができます。新しいバージョンでは出力されない可能性があります。外部で起動したコンソールでプログラムを呼び出そうとしましたか? –

+0

はい、私は-1を入力するとすぐにコンソールウィンドウが閉じますので、出力を見ることができません。これは何が原因で発生したのですか? –

+0

私はまた、Visual Studioを使わずにプログラムを起動しようとしました。結果は同じです(私はちょうどあなたが外部からコンソールを始めることによって何を意味するのか、あなたはこのことに新しいことを推測しています)。 –

答えて

3

、プログラムは、あなたが(最後に成績を印刷する)期待していますが、プログラムが終了するとウィンドウが閉じbeacause結果を確認することはできません。 getchar関数を使用して最後にキーを押すのを待つことができます(hereで説明されています)。

2

すぎるはCtrl +F5だけではなくF5でプロジェクトを開始Visual Studioでコンソールウィンドウを開いたままにします。

関連する問題