2017-11-19 9 views
-5

私はこの電卓を作っています。whileループを使用してプログラムを終了する方法

すべて正常です。

char cont = 'y' 
while (cont == 'y') { 
    /code/ 
} 
printf("Do you want to continue (y/n)") 
scanf("%c", & cont) 

この版画::次のように

はしかし、私は、whileループを使用したい

Do you want to continue (y/n) 

をしかし、私は何かを入力すると、プログラムが予期せず終了します。

全コード:

#include <stdio.h> 
#include <conio.h> 

void main() { 
    float x, y, result; 
    int select; 
    char cont = 'y'; 
    clrscr(); 
    while (cont == 'y') { 
     clrscr(); 
     printf(
      "Please Enter The Respective Number For Following Operation\n1. Addition\n2. Subtraction\n3. Multiplication\n4. Division\n" 
     ); 
     scanf("%d", & select); 
     clrscr(); 
     switch (select) { 
     case 1: 
      { 
       printf("\nEnter The First Number To Add\n"); 
       scanf("%f", & x); 
       printf("\nEnter The Second Number To Add\n"); 
       scanf("%f", & y); 
       clrscr(); 
       result = x + y; 
       printf("Addition of two numbers %f and %f is %f", x, y, 
        result); 
       break; 
      } 
     case 2: 
      { 
       printf("\nEnter The First Number To Subtract\n"); 
       scanf("%f", & x); 
       printf("\nEnter The Second Number To Subtract\n"); 
       scanf("%f", & y); 
       clrscr(); 
       result = x - y; 
       printf("Subtraction of two numbers %f and %f is %f", x, y, 
        result); 
       break; 
      } 
     case 3: 
      { 
       printf("\nEnter The First Number To Multiply\n"); 
       scanf("%f", & x); 
       printf("\nEnter The Second Number To Multiply\n"); 
       scanf("%f", & y); 
       clrscr(); 
       result = x * y; 
       printf("Multiplication of two numbers %f and %f is %f", x, 
        y, result); 
       break; 
      } 
     case 4: 
      { 
       printf("\nEnter The Numerator\n"); 
       scanf("%f", & x); 
       printf("\nEnter The Denominator\n"); 
       scanf("%f", & y); 
       clrscr(); 
       result = x/y; 
       printf("\nDivision of two numbers %f and %f is %f", x, y, 
        result); 
       break; 
      } 
     default: 
      { 
       printf("Invalid Choice"); 
       break; 
      } 
     } 
     printf("\n\nCalculator By XXX\n\nDo you want to Continue (y/n)\n"); 
     scanf("%c", & cont); 
    } 
    getch(); 
} 
+0

実際に何が起こっているのかを理解するためにコードをデバッグしようとしましたか? –

+2

このコードは読めません。投稿する前にそれを健全にフォーマットしてみてください。 –

+0

インデント/書式設定:( –

答えて

0

scanf("%c",&cont);は、あなたのwhile文が失敗することができ、バッファから残り\nを読み取るためあなたのwhileループは終了します。 scanfをscanf(" %c",&cont);に変更する必要があります。

0

whileループ内にscanfステートメントを入れるか、またはwhileの代わりにdo..whileループを使用できます。

do { 
    // code 
    printf("Do you want to continue (y/n)"); scanf("%c",&cont); 

} while(cout=="y"); 
関連する問題