목록C/문제 (23)
개인노트
문제 ) 알파벳 문자를 하나 입력 받아서 대문자는 소문자로, 소문자는 대문자로 변경해주고 알파벳 이외의문자를 입력하는 경우에는 에러 메시지를 출력해보자. 단, getchar, putchar 함수만 사용 문제 21-1.c #include #include int main(void) {char msg = '!';int alp;alp = getchar(); if (alp >= 97 && alp = 65 && alp
문제 ) 컴퓨터와 야구게임을 하는 프로그램을 만들어 보자. 야구 게임의 자릿수를 입력 받은 뒤 컴퓨터는 입력된 자릿수 만큼의 야구게임을 제시한다. 사용자가 1번 답을 입력할 때마다 값과 위치가 같으면 스트라이크, 값만 같으면 볼 이라고 알려 주어야 한다. 도전 3-6.c #include #include #include int main(void) {int p, p2, i,a=0; // 자리수 선택int st=0, ba=0; // 스트라이크, 볼int arr[10], n[10]; // 컴퓨터 숫자 저장, 입력 숫자 저장 배열srand((int)time(NULL)); main:printf("야구 게임 자리수 입력 : ");scanf_s("%d", &p);if (p >= 11) {printf("10이하의 숫자를..
문제 ) 가위바위보 게임을 만들어 컴퓨터가 랜덤으로 선택하게하여 사용자와 가위바위보를 겨루게 해보자.맨 마지막에는 승 패 무의 결과값도 만들어보자. 도전 3-5.c #include #include #include int main(void) {int i, me, pc, win = 0, lose = 0, draw = 0;char scissors[] = { "가위" };char rock[] = { "바위" };char paper[] = { "보" };srand((int)time(NULL)); while (win != 1) {restart:printf("# 가위 1, 바위 2, 보 3 #\n");printf("선택 : ");scanf_s("%d", &me);pc = rand() % ((3 - 1) + 1) + ..
문제 ) 주사위를 두개 던졌을 때 예측 불가능한 결과를 출력하는 프로그램을 작성해보자. 도전 3-4.c #include #include #include int main(void) { int i; srand((int)time(NULL)); for (i = 0; i < 2; i++) {printf("주사위 %d의 결과 : %d\n", i + 1, rand() % ((6 - 1) + 1) + 1); // ((최댓값-최솟값)+1)+최솟값} system("pause");}
문제 ) 난수(Random Number)를 출력해주는 rand함수를 이용하여 0이상 99이하의 난수를 5개 출력해보자.* rand 함수는 컴파일을 하게되면 난수가 고정 값이기 때문에 의사 난수 (pseudo-random number)라고 한다. 도전 3-3.c #include #include "stdlib.h" int main(void) {printf("0부터 %d까지의 랜덤한 수 출력\n\n", RAND_MAX); // RAND_MAX = rand 함수의 최대 값 int i=0; while (i != 5) {printf("%d\n", (rand()%(99-0)+1)+1); // (원하는 최댓값 + 원하는 최솟값)+최솟값)+최솟값)i++;} getchar();}
문제 ) 숫자 n을 입력 받아서 n x n 크기의 배열을 선언한 후 달팽이 배열로 값을 입력 해보자. 도전 3-2.c #include #include "stdlib.h"#define A 100int main(void) {int arr[A][A], size, n = 1;// 배열선언, 입력받을 배열의 크기, 배열의 요소 값 printf("배열의 크기를 입력하세요 : ");scanf_s("%d", &size); int i, l = size; // i = 배열 값 입력 횟수int x = 0, y = -1; // 배열 위치int turn = 1; // 배열 위치 조정을 위한 수 while (l != 0) {for (i = 0; i < l; i++) {y += turn;arr[x][y] = n..
문제 ) 길이가 4 x 4인 int형 2차원 배열을 밑의 그림에서 첫번째 표와 같이 선언한 후 오른쪽 방향으로 90도씩 회전하는 결과를 출력해보자. (회전을 했을 때 각 첫번째 열을 첫번째 표에서 찾으면 규칙을 알 수 있다.) 도전 3-1.c #include #include "stdlib.h" int main(void) {int arr[4][4] = {{1, 2, 3, 4},{5, 6, 7, 8},{9, 10,11,12},{13,14,15,16}};int i, o; // 반복문에서 배열의 크기 for (i = 0; i < 4; i++) { // 0회전for (o = 0; o < 4; o++) {printf("%2d ", arr[i][o]);}printf("\n");} printf("\n ▼ \n\n");..
문제) 두개의 포인터 변수와 길이가5인 배열은 선언한 뒤 함수하나를 정의하여 함수를 호출했을 때 배열요소의 주소값중 가장 큰 주소값과 가장 작은 주소값이 출력되게 해보자. Q) 17-1.c #include #include "stdlib.h" void MaxnMin(int *arr, int **mxptr, int **mnptr) {int i, *max, *min;max=min = &arr[0]; for (i = 0; i arr[i])min = &arr[i];}*mxptr = max;*mnptr = min;} int main(void) {int arr[5];int *maxptr, *minptr;int i;for ..
문제 1) 가로의 길이가 9 세로의 길이가 3인 int형 2차원 배열에 구구단 2,3,4단 다음과 같이 출력하여라. 2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 24 27 4 8 12 16 20 24 28 32 36 Q) 16-1_1.c #include #include "stdlib.h" int main(void) {int gugu[3][9];int dan, num;int x=0, y;// 반복문 변수 /* 배열에 구구단 입력*/for (dan = 2; dan < 5; dan++) {y = 0;for (num = 1; num < 10; num++) {gugu[x][y] = dan * num;y++;}x++;} /* 출력 */for (x = 0; x < 3; x++) {y = ..
문제 1) 길이가 10인 배열에 10개의 정수를 입력 받은 뒤 홀수와 짝수를 구분 할 수 있는 함수를 두개 만들어서 호출 한 뒤 출력해보자. 도전 2-1.c #include void odd(int *, int);void even(int *, int); int main(void) {int arr[10];int i, len = sizeof(arr) / sizeof(int); printf("10개의 정수 입력\n"); for (i = 0; i < len; i++) {scanf_s("%d", &arr[i]);} odd(arr, len);even(arr, len); getchar();getchar();} void odd(int * ptr, int len) {int i; for (i = 0; i < len; i++..