C 언어 가 간단 한 계산기 기능 실현(2)

5931 단어 C 언어계산기
본문 은 이어서 전편C 언어 가 간단 한 계산기 기능 실현(1)계속 공부한다.
이전에 switch 문장 으로 간단 한 계산기 의 기능 을 완 성 했 습 니 다.다음은 if 문장 과 while 순환 문장 으로 간단 한 계산기 의 프로 그래 밍 을 실현 하 겠 습 니 다.
요청:
간단 한 계산 기 를 실현 합 니 다.구체 적 인 코드 는 다음 과 같 습 니 다.

#include <stdio.h>     //    

void main()
{
 char a = 0;        //         
 int x, y;        //     
 int result = 0;
 char b = 37;
 while(1)        // whiel             
 {
  printf("***       ***
"); printf("+
"); printf("-
"); printf("*
"); printf("/
"); printf("%c
",b); printf("q
"); printf(" :"); scanf("%c",&a); if('+'==a) // { printf(" ( ):"); scanf("%d%d",&x,&y); result = x+y; printf("result=%d
",result); continue; } else if('-'==a) // { printf(" ( ):"); scanf("%d%d",&x,&y); result = x-y; printf("result=%d
",result); continue; } else if('*'==a) // { printf(" ( ):"); scanf("%d%d",&x,&y); result = x*y; printf("result=%d
",result); continue; } else if('/'==a) // { printf(" ( ):"); scanf("%d%d",&x,&y); result = x/y; printf("result=%d
",result); continue; } else if('%'==a) // { printf(" ( ):"); scanf("%d%d",&x,&y); result = x%y; printf("result=%d
",result); continue; } else if('q'==a) // { printf("+++ +++
"); break; } else { printf(" , !
"); continue; } } }
이렇게 해서 간단 한 계산기 프로그램 을 완 성 했 습 니 다.형식 은 제 가 쓴 과 같이 기호 로 대응 하 는 조작 을 선택 할 뿐 원리 가 일치 합 니 다.다음은 프로그램 이 실 행 된 결 과 를 살 펴 보 겠 습 니 다.다음 과 같 습 니 다.

결 과 를 통 해 우 리 는 선택 작업 을 한 후에 두 개의 숫자 와 결 과 를 구 한 후에 결과 가 나 왔 다 는 것 을 알 게 되 었 으 나 위의 빨간색 사각형 의 내용 을 많이 보 여 주 었 으 니 그 효 과 를 시험 해 보 세 요.한눈 에 문제 가 있 음 을 알 수 있 습 니 다.이 문제 에 대해 저 는 디 버 깅 과 단계별 추적 을 했 는데 다음 순환 에서 문 구 를 발 견 했 습 니 다.

scanf("%c",&a);
자동 으로 줄 바 꾸 기 동작 을 입력 합 니 다.생각해 보 니 문 자 를 입력 할 때 구문 scanf("%c",&a)를 통 해문 자 를 입력 하 였 으 나,우 리 는 차 를 되 돌 릴 것 입 니 다.이것 은 이 리 턴 이 캐 시 에 남아 있 습 니 다.다음 에 문 자 를 입력 해 야 할 때 자동 으로 입력(개인 이해)을 할 것 입 니 다.그러면 빨간색 사각형 에 있 는 정보 가 자동 으로 나타 날 것 입 니 다.그러면 우 리 는 코드 를 수정 해 야 합 니 다.정확 한 표 시 를 완 료 했 습 니 다.수 정 된 코드 는 다음 과 같 습 니 다.

#include <stdio.h>     //    

void main()
{
 char a = 0;        //         
 int x, y;        //     
 int result = 0;
 char b = 37;
 while(1)        // whiel             
 {
  printf("***       ***
"); printf("+
"); printf("-
"); printf("*
"); printf("/
"); printf("%c
",b); printf("q
"); printf(" :"); scanf("%c",&a); if('
' == a) // , { scanf("%c",&a); } if('+'==a) // { printf(" ( ):"); scanf("%d%d",&x,&y); result = x+y; printf("result=%d
",result); continue; } else if('-'==a) // { printf(" ( ):"); scanf("%d%d",&x,&y); result = x-y; printf("result=%d
",result); continue; } else if('*'==a) // { printf(" ( ):"); scanf("%d%d",&x,&y); result = x*y; printf("result=%d
",result); continue; } else if('/'==a) // { printf(" ( ):"); scanf("%d%d",&x,&y); result = x/y; printf("result=%d
",result); continue; } else if('%'==a) // { printf(" ( ):"); scanf("%d%d",&x,&y); result = x%y; printf("result=%d
",result); continue; } else if('q'==a) // { printf("+++ +++
"); break; } else { printf(" , !
"); continue; } } }
코드 에서 볼 수 있 듯 이 우 리 는 원래 의 코드 에 조건 판단 만 추가 하면 위의 문 제 를 해결 할 수 있 고 추가 한 코드 는 다음 과 같다.

if('
' == a) // , { scanf("%c",&a); }
이렇게 하면 상술 한 문 제 를 해결 하고 그 결 과 를 살 펴 보 겠 습 니 다.

위의 그림 과 차이 가 있 는 것 을 볼 수 있 습 니 다.이렇게 하면 우리 가 디자인 하고 자 하 는 계산기 요구 에 도달 할 수 있 습 니 다.코드 를 자세히 읽 고 모든 줄 의 코드 가 완 성 된 기능 을 알 고 복사 붙 여 넣 지 마 십시오.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기