반응형
정수의 홀수 및 짝수 식별
#include <stdio.h> void main() { int a; printf("짝홀을 확인할 정수를 입력하세요 : "); scanf_s("%d", &a); if (a % 2 == 0) { printf("%d는 짝수입니다. \n", a); } else { printf("%d는 홀수입니다. \n", a); } //사실 이정도는 삼항연산자가 더 보기 편하다. printf("%d는 %s입니다. \n", a, (a == 0 ? "짝수" : "홀수")); }
원하는 연산자와 두 수를 입력받아 사칙연산을 하고 그 결과를 보여주는 프로그램.
(단, 연산자를 잘못 입력했을 때는 다시 연산자를 입력하도록 하고, 나눗셈을 할 때 제수가 0일 경우 제수만 다시 입력받
#include <stdio.h> #include <conio.h> int main() { int a, b, result; char op; char conti = 'y'; while (conti == 'y' || conti == 'Y') {//※프로그램 전체 반복문 시작 do { //※연산자 입력 반복구문 (예외처리 때문에 반복구문을 사용했다.) printf("원하는 연산을 입력하세요. ex) + - * / : "); scanf_s("%c", &op, sizeof(char)); // scanf_s()함수는 보안기능으로 문자열이 입력될 때 문자열의 크기를 함께 입력받는 기능이 추가되어 있다. // 그래서 이 크기를 입력해주지 않으면 경고가 표시된다. if (op != '+' && op != '-' && op != '*' && op != '/') {//연산자 입력 예외처리 구문 printf("잘못 입력하셨습니다. \n"); while (getchar() != '\n'){ } //버퍼를 비우는 명령인데 어떤 원리로 작동하는건지 이해가 잘 안되서 빡친다. //어쨌든 getchar()함수로 버퍼에 있는 값을 \n이 나올 때까지 버리는 것이라한다. } } while (op != '+' && op != '-' && op != '*' && op != '/'); //정해진 네가지 연산자가 아닐 경우 루프를 돌린다. printf("첫번째 정수를 입력하세요."); scanf_s("%d", &a); printf("두번째 정수를 입력하세요."); scanf_s("%d", &b); //※0으로 나누기에 대한 예외처리 while (op == '/' && b == 0) { printf("0으로는 나눌 수 없습니다. \n"); printf("두번째 정수를 다시 입력해주세요: "); scanf_s("%d", &b); } //※ 결과 계산 switch (op) {//연산자의 문자 기호는 아스키코드 값으로 지정되므로 스위치문의 레이블로 사용할 수 있다. case '+': result = a + b; break; case '-': result = a - b; break; case '*': result = a * b; break; case '/': result = a / b; break; } //※결과 출력부 if (op == '/') { //나누기만 몫과 나머지로 표현 printf("%d %c %d = %d ... %d 입니다.", a, op, b, result, a%b); } else { printf("%d %c %d = %d입니다.", a, op, b, result); } while (getchar() != '\n'){} //※프로그램을 종료할 것인지에 대한 검사. (예외처리 때문에 반복문을 사용하는 것) do { printf("연산을 계속 하시겠습니까? (y,n)"); scanf_s("%c", &conti, sizeof(char)); while (getchar() != '\n') {} if (conti != 'y' && conti != 'n' && conti != 'Y' && conti != 'N') // 잘못된 입력에 대한 예외처리 { printf("잘못 입력하셨습니다."); } if (conti == 'n' || conti == 'N') // 프로그램을 빠져나가는 명령문 { return 0; } } while (conti != 'y' && 'n' && 'Y' && 'N'); }//프로그램 전체 반복문 끝 }
정수 a, b를 입력받아 a에서 b까지 합을 구하는 프로그램을 작성하라.
#include <stdio.h> /* 정수입력에 문자 입력하면 예외처리 하는건 나중에 연구해보기로 했다. */ int main() { int a, b, temp, sum = 0; //※정수 2개를 입력받는다. printf("두개의 정수를 입력받아 그 사이의 정수들의 합을 구하는 프로그램입니다. \n"); printf("첫번째 정수를 입력하세요.: "); scanf_s("%d", &a); printf("두번째 정수를 입력하세요.: "); scanf_s("%d", &b); //※둘 중 작은 수를 a, 큰 수를 b에 넣는다. a > b ? temp = b, b = a, a = temp : temp = a; //※작은수부터 큰수까지 합을 구한다. for (; a <= b; a++) { sum += a; } //※값을 출력한다. printf("%d부터 %d까지의 합은 %d입니다. \n", temp, b, sum); }
반응형