일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 코딩테스트
- python
- nestjs auth
- OpenCV
- TypeORM
- 카카오 코테
- Spring
- AWS
- nestjs typeorm
- 가상면접사례로배우는대규모시스템설계기초
- Nodejs
- @Autowired
- git
- C++
- 컴포넌트스캔
- 알고리즘
- 코테
- 구조체배열
- thymeleaf
- C언어
- 프로그래머스
- 해시
- 시스템호출
- @Component
- spring boot
- 카카오
- 카카오 알고리즘
- 파이썬
- nestJS
- 스프링
Archives
- Today
- Total
공부 기록장 💻
C언어 Express 6장 Programming 심화 문제 추가 본문
1. switch-case문을 사용해 모음, 자음 구분하는 프로그램
(+문자가 아닌 경우 오류 메시지를 출력하고, 다시 문자를 입력 받는 코드 추가)
#include <stdio.h>
int main(void) {
char ch;
do {
printf("문자를 입력하시오: ");
scanf_s(" %c", &ch);
} while (ch <= 'A' || ch >= 'z');
switch (ch)
{
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
printf("모음입니다.\n");
break;
default:
printf("자음입니다.\n");
break;
}
return 0;
}
반복문 do~ while문을 사용해서 입력받는 문자를 판별하는 코드를 추가한다.
getchar()함수를 이용하는 경우, 반복문이 작동할 때 enter키가 입력 버퍼로 들어가는 경우가 있으므로 유의해야 한다.
그냥 간단하게 scanf() 함수 사용함.
2. 약수를 검사하는 프로그램
(+조건 연산자를 사용해보기. 그리고 두 수의 순서가 바뀌어도 올바르게 작동하는 프로그램 작성하기. 수의 대소 판별하는 코드 추가)
#include <stdio.h>
int main(void) {
int x, y;
printf("정수를 입력하시오: ");
scanf_s("%d", &x);
printf("정수를 입력하시오: ");
scanf_s("%d", &y);
if (x > y)
x % y == 0 ? printf("%d는 %d의 약수입니다.\n", y, x) : printf("%d는 %d의 약수가 아닙니다.\n", y, x);
else
y % x == 0 ? printf("%d는 %d의 약수입니다.\n", x, y) : printf("%d는 %d의 약수가 아닙니다.\n", x, y);
return 0;
}
조건 연산자를 다른 대안으로 사용해보는 건 나 뿐 일 것 같다.....ㅎㅎ
3. 세 수 중 가장 작은 값 결정하는 프로그램
(+ 1. if-else문 사용하기 / 2. 전처리기를 이용한 매크로 함수 작성)
#include <stdio.h>
int main(void) {
int x, y, z;
printf("3개의 정수 입력: ");
scanf_s("%d %d %d", &x, &y, &z);
if (x < y) {
if (x < z)
printf("제일 작은 정수는 %d입니다.\n", x);
else
printf("제일 작은 정수는 %d입니다.\n", z);
}
else {
if (y < z)
printf("제일 작은 정수는 %d입니다.\n", y);
else
printf("제일 작은 정수는 %d입니다.\n", z);
}
return 0;
}
첫번째 방법은 무난하게 다중 if문과 if-else문을 이용하여 작은 수 구하기.
#include <stdio.h>
#define GetSmall(x,y) (x)<(y)?(x):(y)
int main(void) {
int x, y, z;
printf("3개의 정수 입력: ");
scanf_s("%d %d %d", &x, &y, &z);
printf("제일 작은 수는 %d입니다.\n", GetSmall(z,GetSmall(x, y)));
return 0;
}
두번째는 매크로 함수를 작성하여 코드 한 줄로 가장 작은 수를 구하는 방법이다.
주의할 부분은 매크로 함수 정의 할 때, 각각의 매개 변수의 값을 괄호에 넣어주어야 한다는 점이다.
4. 컴퓨터와 가위, 바위, 보 게임 하는 프로그램 작성
(+그만하고 싶을 때까지 게임할 수 있도록 반복/조건문 이용하여 작성하기.
그리고 승패의 확실한 증거를 대라! 컴퓨터가 선택한 것이 무엇인지 출력하는 코드 작성)
#include <stdio.h>
#include <time.h>
int main(void) {
int choice, computer;
srand(time(NULL));
while (1) {
computer = rand() % 3 + 1;
printf("선택하시오(1: 가위, 2: 바위, 3: 보, 0: 게임 종료)\n");
scanf_s("%d", &choice);
if (choice == 0) break;
switch (computer) {
case 1:
if (choice == 1) printf("비겼습니다.\n");
else if (choice == 2) printf("사용자가 이겼습니다.\n");
else printf("사용자가 졌습니다.\n");
printf("컴퓨터의 선택은 가위였습니다.\n\n");
break;
case 2:
if (choice == 2) printf("비겼습니다.\n");
else if (choice == 3) printf("사용자가 이겼습니다.\n");
else printf("사용자가 졌습니다.\n");
printf("컴퓨터의 선택은 바위였습니다.\n\n");
break;
case 3:
if (choice == 3) printf("비겼습니다.\n");
else if (choice == 1) printf("사용자가 이겼습니다.\n");
else printf("사용자가 졌습니다.\n");
printf("컴퓨터의 선택은 보였습니다.\n\n");
break;
}
}
return 0;
}
728x90
반응형
'# Language & Tools > C' 카테고리의 다른 글
[C언어] 파일 입출력 - FILE 파일 포인터, 파일 관련 함수 (0) | 2021.01.28 |
---|---|
C언어 Express 15장 파일 입출력 Programming 심화 문제 추가 (2) | 2021.01.26 |
[C언어] 함수(function)의 정의, 선언, 호출 / 함수의 매개변수, 반환값, 함수 원형 (0) | 2021.01.25 |
C언어 Express 7장 Programming 심화 문제 추가 (0) | 2021.01.22 |
[C언어] 구구단 출력 프로그램 (0) | 2021.01.22 |
Comments