星野アイ.com
Category A
Subcategory a
Category B
Subcategory b
Subsubcategory 1
Subsubcategory 2
post-03
Subcategory c
Study
C Language
ARM Device
C Example
C task
Linux
Day1
Day2
Day3
Day4
perceptron
Subcategory c
VLSI Circuits Design
Day1
Subsubcategory 1
Subsubcategory 2
example
comment system
Home
markdown guide
posting guide
visitor counter
Contact
Copyright © 2024 |
Yankos
Home
>
Study
>
C Language
> C Example
💖 星野アイ (◍•ᴗ•◍)♡ ✧*。
C Example
example page
What is Lorem Ipsum? This is an example post ‘<’. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 수정wogjd Heading 1 Heading 2 Heading 3 Heading 4 Heading 5 Heading 6 This is the bold text and this is the italic text and let’s do strikethrough. Don’t forget to code your dream. Fruits: 🍎 🍋 Other fruits: 🍑 🍏 Numbers: first second third Click here | Header | Description | | :–: | :–: | | Cell1 | Cell2 | | Cell1 | Cell2 | | Cell1 | Cell2 | | Cell1 | Cell2 | To print message in the console, use console.log('your message') and .. console.log('your message') 1일차 기록 source /home/env/env_tools.csh custom_compiler& Custom Compiler 실행 및 초기화면 나의 작업 공간인 Library 생성 (name, tech_library 선택) schematic 생성을 위해 CellView 추가 (schematic name: NOT) schematic 원할한 작업을 위해 Design Options setting (Editing modify) Key Roll I istance W wire L label(wire name) P pin U back C copy Q property F2 save M move E inside cell ctrl + E outside cell 단축키 및 역할 기록 Check and Save 통해 Error 확인
Study
· 2025-06-16
[ex78] 공용체 활용 예 : 엔디안 모드 변경
문제 설명 Little Big 엔디안 모드를 변경하는 함수를 설계하라 int Change_Endian(int a); a 값을 받으면 엔디안 모드를 바꿔서 리턴 한다 #include <stdio.h> union uni { int a; char b[4]; }; int Change_Endian(int data) { char tmp; union uni x; x.a = data; // 코드 작성 return x.a; } void main(void) { int a = 0x12345678; printf("0x%.8x => 0x%.8x\n", a, Change_Endian(a)); } 출력 예시 0x12345678 => 0x78563412 정답 코드 #include <stdio.h> union uni { int a; char b[4]; }; int Change_Endian(int data) { char tmp; union uni x; x.a = data; // 코드 작성 tmp = x.b[0]; x.b[0] = x.b[3]; x.b[3] = tmp; tmp = x.b[1]; x.b[1] = x.b[2]; x.b[2] = tmp; return x.a; } void main(void) { int a = 0x12345678; printf("0x%.8x => 0x%.8x\n", a, Change_Endian(a)); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex77] 1개의 정수를 추가하고 배열를 인쇄하시오
문제 설명 첫줄에 입력되는 N(1 <= N <= 17)개 만큼 다음줄에 입력되는 정수(음수, 0, 양수 모두 가능)를 입력받아 배열에 저장한다. 단, 입력되는 값은 오름차순으로 정렬된 상태로 주어지며 같은 값이 중복되어 있을수는 있다. 마지막 줄에 추가할 값을 정수로 입력 받는다. 추가될 값이 오름차순이 되도록 배열에 추가한 후 결과를 인쇄한다. #include <stdio.h> int main(void) { return 0; } 입력 예시 10 10 20 30 40 50 60 70 80 90 100 65 출력 예시 10 20 30 40 50 60 65 70 80 90 100 정답 코드 #include <stdio.h> int N; int A[17 + 1]; int B; void InputData(void) { scanf("%d", &N); for (int i = 0; i < N; i++) { scanf("%d", &A[i]); } scanf("%d", &B); } void Solve(void) { int i; for (i = N - 1; i >= 0; i--) { if (A[i] <= B) { A[i + 1] = B; break; } else { A[i + 1] = A[i]; } } if (i == -1) { A[0] = B; } } void OutputData(void) { for (int i = 0; i < N + 1; i++) { printf("%d ", A[i]); } } int main(void) { InputData(); Solve(); OutputData(); return 0; } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex76] 최대값
문제 설명 9개의 서로 다른 자연수가 주어질 때 이들 중 최대값을 찾고 그 최대값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어지면 이들 중 최대값은 85이고 이 값은 8번째 수이다. #include <stdio.h> int main(void) { return 0; } 입력 설명 첫 째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다. 출력 설명 첫째 줄에 최대값을 출력하고 둘째 줄에 최대값이 몇 번째 수인지를 출력한다. 입력 예시 3 29 38 12 57 74 40 85 61 출력 예시 85 8 정답 코드 #include <stdio.h> int A[9]; void InputData(void) { for (int i = 0; i < 9; i++) { scanf("%d", &A[i]); } } int Solve(void) { int maxidx = 0; for (int i = 1; i < 9; i++) { if (A[maxidx] < A[i]) maxidx = i; } return maxidx; } int main(void) { InputData(); int ans = Solve(); printf("%d\n%d\n", A[ans], ans + 1); return 0; } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex75] 사람 찾기
문제 설명 찾는 사람이 있는 자리 번호를 모두 인쇄하는 코드를 설계하라 첫 줄에 정수 n(1<=n<=10), 다음 줄부터 n명 이름이 공백으로 분리되어 입력된다 단, 입력되는 이름은 공백이 없는 것으로 가정한다 마지막 줄에 줄에 찾고자 하는 사람의 이름이 입력된다 N명 사람들 중에서 찾는 사람을 모두 찾아 그 자리 번호를 한 줄에 하나씩 인쇄하라 단, 자리 번호는 처음 사람이 1번부터 시작하며 찾는 사람은 반드시 1명 이상 존재한다 문자열 비교는 기존에 설계했던 문자열 비교 프로그램을 참고한다 #include <stdio.h> void main(void) { // 코드 작성 } 입력 설명 이름은 최대 20자 이하임 입력 예시 5 kim lee park kim song kim 출력 예시 1 4 정답 코드 #include <stdio.h> char a[10][21]; char b[21]; int str_cmp(int n) { int i = 0; for (;;) { if (a[n][i] != b[i]) return 0; if (a[n][i] == '\0' && b[i] == '\0') return 1; i++; } #if 0 while (a[n][i] != '\0' || b[i] != '\0') { if (a[n][i] != b[i]) return 0; i++; } return 1; #endif } void main(void) { int i; int n; scanf("%d", &n); for (i = 0; i < n; i++) { scanf(" %s", &a[i][0]); } scanf(" %s", &b[0]); // scanf(" %s", b); for (i = 0; i < n; i++) { if(str_cmp(i) == 1) printf("%d\n", i + 1); } } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex74] 다른 모양의 이차원 배열 Transpose
문제 설명 3x4 배열 a 의 값들을 b 배열(4x3)에 옮겨 저장하라 #include <stdio.h> int a[3][4] = { {1,2,3,4}, {5,6,7,8}, {9,10,11,12} }; int b[4][3]; void transpose2(void) { // 코드 구현 } void main(void) { int i, j; for (i = 0; i < 3; i++) { for (j = 0; j < 4; j++) { printf("%d ", a[i][j]); } printf("\n"); } transpose2(); for (i = 0; i < 4; i++) { for (j = 0; j < 3; j++) { printf("%d ", b[i][j]); } printf("\n"); } } 출력 예시 1 2 3 4 5 6 7 8 9 10 11 12 12 8 4 11 7 3 10 6 2 9 5 1 정답 코드 #include <stdio.h> int a[3][4] = { {1,2,3,4}, {5,6,7,8}, {9,10,11,12} }; int b[4][3]; void transpose2(void) { // 코드 구현 int i, j; for (i = 0; i < 3; i++) { for (j = 0; j < 4; j++) { b[4 - 1 - j][3 - 1 - i] = a[i][j]; } } } void main(void) { int i, j; for (i = 0; i < 3; i++) { for (j = 0; j < 4; j++) { printf("%d ", a[i][j]); } printf("\n"); } transpose2(); for (i = 0; i < 4; i++) { for (j = 0; j < 3; j++) { printf("%d ", b[i][j]); } printf("\n"); } } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex73] 이차원 배열 Transpose
문제 설명 4x4 배열의 값들을 출력 예시와 같이 b 배열(4x4)에 옮겨 저장하라 #include <stdio.h> int a[4][4] = { {1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13, 14, 15, 16} }; int b[4][4]; void transpose1(void) { // 코드 구현 } void main(void) { int i, j; for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { printf("%d ", a[i][j]); } printf("\n"); } transpose1(); for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { printf("%d ", b[i][j]); } printf("\n"); } } 출력 예시 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 16 12 8 4 15 11 7 3 14 10 6 2 13 9 5 1 정답 코드 #include <stdio.h> int a[4][4] = { {1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13, 14, 15, 16} }; int b[4][4]; void transpose1(void) { // 코드 구현 int i, j; for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { b[4 - 1 - j][4 - 1 - i] = a[i][j]; } } } void main(void) { int i, j; for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { printf("%d ", a[i][j]); } printf("\n"); } transpose1(); for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { printf("%d ", b[i][j]); } printf("\n"); } } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex72] 합이 가장 큰 행과 열 찾기
문제 설명 2차원 배열에서 합이 가장 큰 행과 열의 번호를 각각 인쇄하라 #include <stdio.h> void main(void) { // 코드 작성 } 입력 설명 첫 줄에 정수 N(2<=N<=5)이 다음 줄부터 N개의 정수가 N줄에 걸쳐서 입력된다 입력 예시 5 3 -5 12 3 -21 -2 11 2 -7 -11 21 -21 -34 -93 -11 9 14 39 -98 -1 -2 -2 -2 -2 -2 출력 예시 2 1 정답 코드 #include <stdio.h> int N; int a[5][5]; void input(void) { int i, j; scanf("%d", &N); for (i = 0; i < N; i++) { for (j = 0; j < N; j++) { scanf("%d", &a[i][j]); } } } void main(void) { int i, j; int sum = 0, max_sum = 0; int max_r, max_c; input(); // 코드 구현 for (i = 0; i < N; i++) { sum = 0; for (j = 0; j < N; j++) { sum += a[i][j]; } if (i == 0) { max_sum = sum; max_r = 0; } else if (sum > max_sum) { max_sum = sum; max_r = i; } } for (j = 0; j < N; j++) { sum = 0; for (i = 0; i < N; i++) { sum += a[i][j]; } if (j == 0) { max_sum = sum; max_c = 0; } else if (sum > max_sum) { max_sum = sum; max_c = j; } } printf("%d %d", max_r + 1, max_c + 1); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex71] 가장 작은 값의 행과 열 번호 찾기
문제 설명 2차원 배열로 입력 받아 가장 값이 작은 행과 열 번호를 인쇄하라 행, 열 번호를 공백으로 분리하여 인쇄하라 단, 행과 열의 번호는 1부터 시작한다 #include <stdio.h> void main(void) { // 코드 작성 } 입력 예시 1 3 5 7 9 3 5 8 9 10 2 8 7 6 3 -1 -2 -9 -10 -11 11 22 33 67 90 출력 예시 4 5 정답 코드 #include <stdio.h> int a[5][5]; void input(void) { int i, j; for (i = 0; i < 5; i++) { for (j = 0; j < 5; j++) { scanf("%d", &a[i][j]); } } } void main(void) { int i, j; int min = 0x7fffffff; int r, c; input(); // 코드 구현 for (i = 0; i < 5; i++) { for (j = 0; j < 5; j++) { if (min > a[i][j]) { min = a[i][j]; r = i + 1; c = j + 1; } } } printf("%d %d", r, c); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex70] 2차원 배열로 정수 입력 받아서 가장 큰 값 인쇄
문제 설명 2차원 배열을 입력 받아서 가장 값이 큰 값을 인쇄하라 #include <stdio.h> int a[5][5]; void input(void) { int i, j; for (i = 0; i < 5; i++) { for (j = 0; j < 5; j++) { scanf("%d", &a[i][j]); } } } void main(void) { int i, j; input(); // 코드 구현 } 입력 설명 5줄에 걸쳐서 공백으로 분리된 정수가 5개씩 입력된다 출력 설명 이 들 중 가장 값이 큰 정수를 인쇄하라 입력 예시 1 3 5 7 9 3 5 8 9 10 2 8 7 6 3 -1 -2 -9 -10 -11 11 22 33 67 90 출력 예시 90 정답 코드 #include <stdio.h> int a[5][5]; void input(void) { int i, j; for (i = 0; i < 5; i++) { for (j = 0; j < 5; j++) { scanf("%d", &a[i][j]); } } } void main(void) { int i, j; int max; input(); // 코드 구현 max = a[0][0];//최댓값 찾기 위해서는 최솟값으로 설정(0x80000000 혹은 첫요소값) for (i = 0; i < 5; i++) { for (j = 0; j < 5; j++) { if (max < a[i][j]) max = a[i][j]; } } printf("%d\n", max); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex69] 문자열 비교
문제 설명 문자열 2개를 입력 받아 대소를 판단하는 코드를 설계하라 문자열의 대소 비교 규정 : 글자들을 순서대로 비교하면서 대소를 판단한다 대소 판단 예 : (1) KIM == KIM (2) Kim > KIM (3) abcd > abc (4) abx > abcdex 앞 문자열이 크면 “BIG”, 앞 문자열이 작으면 “SMALL”, 같으면 “SAME”을 출력한다 단, 입력되는 두 개의 문자열은 영문자 최대 10글자의 공백이 없는 문자열이다 #include <stdio.h> void main(void) { char a[11]; char b[11]; scanf(" %s", a); scanf(" %s", b); // 코드 구현 } 입력 예시 KIM KIM 출력 예시 SAME 정답 코드 #include <stdio.h> void main(void) { char a[11]; char b[11]; int i = 0; scanf(" %s", a); scanf(" %s", b); // 코드 구현 while (a[i] != 0 || b[i] != 0) { if (a[i] > b[i]) { printf("BIG\n"); return; } if (a[i] < b[i]) { printf("SMALL\n"); return; } i++; } printf("SAME\n"); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex68] 성적처리용 수퍼 컴퓨터
문제 설명 성적처리 프로그램을 배열을 이용하여 함수로 설계하라 Parameter는 int이고 함수명과 return 타입은 임의로 지정하라 성적 기준 : 100~91 -> A, 90~81 -> B, 80~71 -> C, 70~61 -> D, 60이하 -> F 성적을 입력하면 학점을 리턴하는 함수를 설계하라 (문자 A,B,C,D,F 중 하나) 단, 지정된 범위의 값(0~100)이 아니면 반드시 문자 X를 리턴 하라 이 프로그램을 배열을 이용하여 최적의 프로그램으로 구현하라 #include <stdio.h> void main(void) { // 코드 작성 } 입력 예시 92 출력 예시 A 정답 코드 #include <stdio.h> char s[] = "FFFFFFDCBA"; char grade(int score) { if (score < 0 || score > 100) return 'X'; return s[(score - 1) / 10]; } void main(void) { int score; scanf("%d", &score); printf("%c\n", grade(score)); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex67] 암호화 프로그램
문제 설명 다음과 같이 암호표를 만들었다 암호화 프로그램을 설계하라 규정 : A~Z 대문자를 넣으면 다음과 같은 규칙으로 알파벳이 변경되어 나온다 ABCDEFGHIJKLMNOPQRSTUVWXYZ QWERTYUIOPLKJHGFDSAZXCVBNM scanf로 글자를 입력 받아서 암호화된 문자를 인쇄하도록 한다 단, 대문자 A~Z 이외의 글자를 입력하면 종료한다 #include <stdio.h> void main(void) { // 코드 작성 } 입력 예시 W I L L T E K 5 출력 예시 V O K K Z T L 정답 코드 #include <stdio.h> char sec[] = "QWERTYUIOPLKJHGFDSAZXCVBNM"; void main(void) { char ch; for (;;) { scanf(" %c", &ch); if ((ch < 'A') || (ch > 'Z')) break; else printf("%c\n", sec[ch - 'A']); } } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex66] 키 순서대로 집합
문제 설명 입력 받은 20개의 정수들을 작은 값에서 큰 값으로 정렬하라 값을 입력 받아 20개의 배열 요소에 저장을 한다 입력 값은 음수, 양수 상관 없다 단, 20개 정수는 한 줄에 공백으로 분리되어 입력 된다 a[0]에는 가장 작은 값, a[19]에는 가장 큰 값이 저장되도록 정렬(sorting) 한다 정렬된 20개의 데이터를 인쇄한다 가장 작은 값부터 인쇄가 되게 한다 어떻게 배열에 있는 값 들을 정렬 할 수 있을까? a[0]를 a[1] ~ a[19]과 비교하면서 a[0]가 더 크면 자리를 바꾼다 이렇게 하면 a[0]에 가장 작은 값이 들어오게 되고 이것을 a[1] ~ a[19]에 대하여 반복한다 #include <stdio.h> void main(void) { // 코드 작성 } 입력 예시 -38 291 92 0 239 4879287 281 -274 2989 4892 88 -1 -1 24 2982 78974983 97994 -5839 398593 398593 출력 예시 -5839 -274 -38 -1 -1 0 24 88 92 239 281 291 2982 2989 4892 97994 398593 398593 4879287 78974983 정답 코드 #include <stdio.h> void main(void) { int i, j, num; int a[20]; for (i = 0; i < 20; i++) { scanf("%d", &num); a[i] = num; } for (i = 0; i < 20 - 1; i++) { for (j = i + 1; j < 20; j++) { if (a[i] > a[j]) { num = a[i]; a[i] = a[j]; a[j] = num; } } } for (i = 0; i < 20; i++) { printf("%d ", a[i]); } } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex65] 밤을 분류하여 담는 바구니
문제 설명 알밤을 종류별로 분류하여 각각의 바구니에 담고자 한다 공백으로 분리된 100 이하의 양의 정수 m, n(m < n)을 입력 받는다 m ~ n 범위의 수 중에서 다음 조건의 알밤들을 저장 한다. (주의) n도 포함 된다 공주 알밤 : 3의 배수, 수원 알밤 : 5의 배수, 쭉정이 : 3 또는 5의 배수가 아닌 수 단, 3과 5의 공배수이면 공주 알밤이며 개수 제한 없이 모든 값을 다 저장해야 한다 먼저 공주 알밤 수와 값들을 인쇄하고 다음에 수원 알밤 수와 값들을 인쇄한다 #include <stdio.h> void main(void) { // 코드 작성 } 입력 예시 1 20 출력 예시 6 3 6 9 12 15 18 3 5 10 20 정답 코드 #include <stdio.h> int a[100 + 2]; int b[100 + 2]; void main(void) { int i, m, n; int cnt1 = 0, cnt2 = 0; scanf("%d %d", &m, &n); for (i = m; i <= n; i++) { if ((i % 3) == 0) { a[cnt1] = i; cnt1++; } else if ((i % 5) == 0) { b[cnt2] = i; cnt2++; } } printf("%d\n", cnt1); for (i = 0; i < cnt1; i++) { printf("%d ", a[i]); } if (cnt1) printf("\n"); printf("%d\n", cnt2); for (i = 0; i < cnt2; i++) { printf("%d ", b[i]); } } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex64] 귤 판매
문제 설명 귤 판매 : 최대 10개의 귤 중에서 크기가 큰 귤만 판매하고자 한다 첫 줄에 10이하 양의 정수 n, 다음 줄에 공백으로 분리된 n개의 정수를 받는다 이 n개의 정수 중 팔 수 있는 귤(값이 10 이상)을 선별하여 개수와 값 들을 인쇄하라 #include <stdio.h> void main(void) { // 코드 작성 } 입력 예시 5 8 10 25 4 30 출력 예시 3 10 25 30 정답 코드 #include <stdio.h> int a[10]; int b[10]; void main(void) { int i, n, cnt = 0; scanf("%d", &n); for (i = 0; i < n; i++) { scanf("%d", &a[i]); if (a[i] >= 10) { b[cnt] = a[i]; cnt++; } } printf("%d\n", cnt); for (i = 0; i < cnt; i++) { printf("%d ", b[i]); } } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex63] 알밤만 담는 바구니
문제 설명 최대 10개를 담을 수 있는 알밤 바구니에 알밤들을 담으려 한다 공백으로 분리된 정수 m, n을 입력 받는다 m이 n보다 크거나 m이 음수거나 n이 음수일 경우는 “Error”를 출력하고 종료한다 m ~ n 범위의 수 중에서 다음 조건의 알밤을 저장 한다. (주의) n도 포함 된다 알밤은 3과 5의 공통 배수(15의 배수로 찾지 말고)이고 그 외는 다 쭉정이로 판단한다 바구니는 배열 10개 짜리를 설계하고 알밤을 발견할 때마다 값을 추가한다 단, 알밤은 최대 10개까지만 담을 수 있으며 10개를 담으면 바구니에 저장을 종료해야 한다 바구니에 담긴 알밤 수를 인쇄하고 다음 줄에 공백으로 분리하여 값들을 인쇄한다 단, 알밤이 10개보다 적을 수도 있으며 이 경우 저장된 알밤 값들만 인쇄되어야 한다 #include <stdio.h> void main(void) { // 코드 작성 } 입력 예시 1 50 출력 예시 3 15 30 45 정답 코드 #include <stdio.h> int a[10]; void main(void) { int i, m, n, cnt = 0; scanf("%d %d", &m, &n); if (m > n || m < 0 || n < 0) { printf("Error\n"); return; } for (i = m; i <= n; i++) { if (((i % 3) == 0) && ((i % 5) == 0)) { a[cnt] = i; cnt++; if (cnt == 10) break; } } printf("%d\n", cnt); for (i = 0; i < cnt; i++) { printf("%d ", a[i]); } } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex62] 대문자의 개수
문제 설명 연속으로 입력된 10글자 중에서 대문자의 개수를 출력하라 #include <stdio.h> void main(void) { // 코드 작성 } 입력 예시 abCDeFGHiz 출력 예시 5 정답 코드 #include <stdio.h> char a[11]; void main(void) { int i, cnt = 0; scanf("%s", a); for (i = 0; i < 10; i++) { if ('A' <= a[i] && a[i] <= 'Z') cnt++; } printf("%d\n", cnt); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex61] 행운권 추첨
문제 설명 다음 조건에 맞는 행운권 추첨 프로그램을 설계하라 첫 줄에 공백으로 분리된 정수 5개가 입력되고 다음 줄에 정수 1개가 입력 된다 두 번째 줄에서 입력 받은 정수가 5개의 입력 받은 정수들 중 있으면 “BINGO”를 인쇄한다 5개의 정수에 포함되어 있지 않으면 “FAIL”을 인쇄한다 #include <stdio.h> void main(void) { // 코드 작성 } 입력 예시 3 7 -4 9 8 9 출력 예시 BINGO 정답 코드 #include <stdio.h> int a[5]; void main(void) { int i, num; for (i = 0; i < 5; i++) { scanf("%d", &a[i]); } scanf("%d", &num); for (i = 0; i < 5; i++) { if (a[i] == num) break; } if (i < 5) printf("BINGO\n"); else printf("FAIL\n"); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex60] 암기왕
문제 설명 암기왕 프로그램을 설계하라 scanf로 정수 5개를 입력 받는다 for 루프 활용 5개를 다 입력 받으면 입력 받은 5개의 수를 모두 인쇄한다 for 루프 활용 #include <stdio.h> void main(void) { int a[5]; // 코드 구현 } 입력 예시 3 7 -4 9 8 출력 예시 3 7 -4 9 8 정답 코드 #include <stdio.h> void main(void) { int a[5]; // 코드 구현 int i; for (i = 0; i < 5; i++) { scanf("%d", &a[i]); } for (i = 0; i < 5; i++) { printf("%d\n", a[i]); } } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex59] 피타고라스 수
문제 설명 피타고라스는 각 변의 길이가 a, b, c인 직각삼각형에서 a2+b2=c2가 성립함을 발견하고서 유레카를 외치며 목욕탕을 뛰쳐나왔다. (후에 아르키메데스가 이를 따라 했다는 얘기가 있음) 자연수 n이 주어지면, 1≤a≤b≤c≤n을 만족하면서 a2+b2=c2 또한 성립하는 a, b, c가 얼마나 있는지 계산하는 프로그램을 작성하자. 당연히 a, b, c는 모두 정수여야 한다. 예를 들어, n이 15인 경우 아래와 같은 4가지의 (a, b, c)가 존재한다. (3, 4, 5), (5, 12, 13), (6, 8, 10), (9, 12, 15) #include <stdio.h> int Solve(int n) { //여기서 부터 작성 } int main(void) { int n; scanf("%d", &n); printf("%d\n", Solve(n)); return 0; } 입력 설명 첫 번째 줄에 300 이하의 자연수 n이 입력된다. 출력 설명 첫 번째 줄에 가능한 피타고라스 수의 개수를 출력한다 입력 예시 15 출력 예시 4 정답 코드 #include <stdio.h> int Solve(int n) { int cnt = 0; for (int c = 2; c <= n; c++) { for (int b = 1; b < c; b++) { for (int a = 1; a <= b; a++) { if (a*a + b * b == c * c) cnt++; } } } return cnt; } int main(void) { int n; scanf("%d", &n); printf("%d\n", Solve(n)); return 0; } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex58] 진약수의 개수
문제 설명 2개의 정수 N, M을 입력 받아 N부터 M까지 차례로 증가하면서 각 정수들의 진약수를 구하여 진약수의 개수가 가장 많은 정수를 찾아 인쇄한다. 진약수란 자신을 제외한 약수들을 말한다. 예로 6의 약수는 1, 2, 3, 6인데 자신을 제외한 진약수는 1, 2, 3인 3개이다. 단 함수를 설계하여 구현 한다. #include <stdio.h> int Solve(int n, int m) { //여기서 부터 작성 } int main(void) { int N, M; scanf("%d %d", &N, &M); printf("%d\n", Solve(N, M)); return 0; } 입력 설명 순서대로 N과 M을 입력 받는다 ( 1≦ N, M ≦ 10,000 ) 출력 설명 N부터 M까지 수중에서 진약수의 개수가 가장 많은 정수를 출력한다. 동일한 값이 여러 개일 경우 가장 작은 값을 출력한다. 입력 예시 1 10 출력 예시 6 정답 코드 #include <stdio.h> int Solve(int n, int m) { int num = 0, maxv = 0; for (int i = n; i <= m; i++) { int cnt = 0; for (int j = 1; j < i; j++) { if (i%j == 0) cnt++; } if (cnt > maxv) { maxv = cnt; num = i; } } return num; } int main(void) { int N, M; scanf("%d %d", &N, &M); printf("%d\n", Solve(N, M)); return 0; } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex57] 누계 연산
문제 설명 3보다 큰 양수 n을 입력 받아 1 + (12) + … + (12…n) 의 누계를 인쇄하는 프로그램을 작성하시오. 예를 들어, 5입력 시 1 + 2 + 6 + 24+ 120 = 153을 인쇄한다 #include <stdio.h> int Solve(int n) { //여기서 부터 작성 } int main(void) { int n; scanf("%d", &n); printf("%d\n", Solve(n)); return 0; } 입력 설명 첫째 줄에 양의 정수 n (1<= n <= 10)이 입력된다 출력 설명 누계 연산 결과를 출력한다 입력 예시 5 출력 예시 153 정답 코드 #include <stdio.h> int Solve(int n) { int sum = 0; for (int i = 1; i <= n; i++) { int temp = 1; for (int j = 1; j <= i; j++) { temp *= j; } sum += temp; } return sum; } int main(void) { int n; scanf("%d", &n); printf("%d\n", Solve(n)); return 0; } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex56] 마지막 정수 찾기
문제 설명 1개의 정수 n을 입력 받아 1+2+3… +x 의 합계가 n이상이 되면 마지막 더한 수 x를 구하여 인쇄한다. ( 1+2+3… +x >= n 의 조건이며 n은 양의 정수임 ) #include <stdio.h> int Solve(int n) { //여기서 부터 작성 } int main(void) { int n; scanf("%d", &n); printf("%d\n", Solve(n)); return 0; } 입력 설명 첫째 줄에 양의 정수 n(1<=n<=10억)이 입력된다 출력 설명 1+2+3… +x >= n을 만족하는 제일 작은 x를 출력한다 입력 예시 2500 출력 예시 71 정답 코드 #include <stdio.h> /* int Solve(int n) { int sum = 0, i; for (i = 1; sum < n; i++) { sum += i; } return i - 1; } */ int Solve(int n) { int sum = 0; int v = 1; for(;;) { sum += v; if(sum >= n) return v; v++; } } int main(void) { int n; scanf("%d", &n); printf("%d\n", Solve(n)); return 0; } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex55] 원하는 자리값 알아내기
문제 설명 첫 줄에 양의 정수 하나(n)를 입력받는다. 다음 줄에 추출하고 싶은 자리 번호(d)를 하나 입력 받는다. 단, 항상 d는 n의 자리수보다 작은 값이다. 입력받은 n의 d번째 자리의 값을 인쇄하는 코드를 설계하라. d가 0이면 1의 자리, d가 1이면 10의 자리, d가 2이면 100의 자리를 추출하면 된다. #include <stdio.h> int Solve(int n, int d) { //여기서 부터 작성 } int main(void) { int n, d; scanf("%d", &n); scanf("%d", &d); printf("%d\n", Solve(n, d)); return 0; } 입력 예시 7825612 2 출력 예시 6 정답 코드 #include <stdio.h> int pow(int x) { int r = 1; for (int i = 0; i < x; i++) { r *= 10; } return r; } int Solve(int n, int d) { return n / pow(d) % 10; } int main(void) { int n, d; scanf("%d", &n); scanf("%d", &d); printf("%d\n", Solve(n, d)); return 0; } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex54] 중간값 찾기
문제 설명 두 수의 중간 값을 찾는 함수를 설계하라 정수 2개를 입력 받아 두 수의 중간 값을 리턴하는 함수를 설계한다 scanf로 입력 받으며 음의 정수나 양의 정수나 모두 가능하다 또한 입력된 2개의 정수는 앞에 것과 뒤의 것 중 어느 것이 큰지는 확신할 수 없다 1과 6이 입력되면 중간 값이 3, 4가 다 가능하므로 이러한 값들은 입력되지 않는다 또한, 두 값이 같은 값이 입력되는 경우도 없는 것으로 한다 #include <stdio.h> void main(void) { // 코드 작성 } 입력 예시 10 20 출력 예시 15 정답 코드 #include <stdio.h> int Search_Middle(int num1, int num2) { for(; num1 != num2; num1++, num2--); return num1; } void main(void) { int min = 0, max = 0, temp; scanf("%d %d", &min, &max); if (min > max) { temp = min; min = max; max = temp; } printf("%d\n", Search_Middle(min, max)); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex53] Factorial - for 이용
문제 설명 팩토리얼을 구하는 함수를 설계하라 입력 받은 양의 정수의 팩토리얼(!)을 구하는 함수 parameter는 int, return은 unsigned long long int 팩토리얼: 3! = 3 * 2 * 1 for 문으로 설계하라 #include <stdio.h> unsigned long long int Factorial(int num) { // for 이용 코드 작성 } void main(void) { int value; scanf("%d", &value); printf("%llu\n", Factorial(value)); } 입력 예시 3 출력 예시 6 정답 코드 #include <stdio.h> unsigned long long int Factorial(int num) { // for 이용 코드 작성 int i; unsigned long long int answer = 1; for (i = 2; i <= num; i++) { answer *= i; } return answer; } void main(void) { int value; scanf("%d", &value); printf("%llu\n", Factorial(value)); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex52] X가 입력될 때까지 입력 받기
문제 설명 조건에 맞는 입력이 들어올 때 까지 입력 받기 글자를 입력 받아서 대문자 “X”가 들어오면 while을 탈출한 후 “EXIT”를 인쇄하라 단, 다른 글자가 입력되면 “ERROR”를 인쇄하고 다시 입력을 받아야 한다 #include <stdio.h> void main(void) { // 코드 작성 } 입력 예시 3 x X 출력 예시 ERROR ERROR EXIT 정답 코드 #include <stdio.h> void main(void) { char x; for (;;) { scanf(" %c", &x); if (x == 'X') { printf("EXIT\n"); break; } printf("ERROR\n"); } } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex51] 받은 수부터 0까지 3의 배수를 인쇄하는 함수
문제 설명 수를 받으면 그 수부터 0 까지 수 중에 3의 배수를 모두 인쇄하라 parameter는 int, return은 없음, 단, 받은 수부터 0까지 역순으로 인쇄한다 scanf로 양의 정수 하나를 입력 받아서 함수에 전달한다 #include <stdio.h> void main(void) { // 코드 작성 } 입력 예시 10 출력 예시 9 6 3 0 정답 코드 #include <stdio.h> void Multiple_3(int num) { while (num >= 0) { if ((num % 3) == 0) printf("%d\n", num); num--; } } void main(void) { int n; scanf("%d", &n); Multiple_3(n); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex50] 1부터 입력 값까지 소수를 모두 인쇄하는 함수
문제 설명 1부터 입력 받은 값 사이의 소수를 모두 인쇄하는 함수를 설계하라 리턴은 없고 입력 받은 정수까지 모든 소수를 공백으로 분리하여 인쇄하는 함수 소수(素數, prime number): 1과 자기 자신으로만 나누어지는 수 main에서 scanf로 양의 정수 하나를 입력 받아 함수에 전달한다 #include <stdio.h> void main(void) { // 코드 작성 } 입력 예시 11 출력 예시 2 3 5 7 11 정답 코드 #include <stdio.h> void Print_Prime(int max) { int i, j, k; for (i = 2; i <= max; i++) { k = 0; for (j = 2; j < i; j++) { if ((i % j) == 0) { k = 1; break; } } if (k == 0) { printf("%d ", i); } } } void main(void) { int n; scanf("%d", &n); Print_Prime(n); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex49] 짝수와 3의 배수를 제외한 숫자 인쇄
문제 설명 for loop를 이용하여 다음과 같은 함수를 설계하라 1부터 넘어온 숫자까지 값 중에서 짝수와 3의 배수를 제외한 숫자를 모두 인쇄한다 인쇄는 한 줄에 9개의 숫자를 인쇄하며 숫자당 최대 3자리를 차지하도록 한다 숫자 인쇄는 다음 코드를 활용한다. printf(“%3d “, i); // 숫자의 인쇄는 아래 코드를 이용한다 // printf("%3d ", i); #include <stdio.h> void func(int num) { // 코드 구현 } void main(void) { int n; scanf("%d", &n); func(n); } 입력 예시 121 출력 예시 1 5 7 11 13 17 19 23 25 29 31 35 37 41 43 47 49 53 55 59 61 65 67 71 73 77 79 83 85 89 91 95 97 101 103 107 109 113 115 119 121 정답 코드 #include <stdio.h> void func(int num) { // 코드 구현 int i; int cnt = 0; for (i = 1; i <= num; i++) { if ((i % 2 != 0) && (i % 3 != 0)) { printf("%3d ", i); cnt++; } if (cnt == 9) { printf("\n"); cnt = 0; } } } void main(void) { int n; scanf("%d", &n); func(n); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex48] j == 4 일 때 완전히 루프를 탈출하려면?
문제 설명 j == 4일 때 완전히 바깥 루프까지 빠져 나오려면? break문은 가장 가까이에 있는 for loop를 빠져 나온다 코드를 변형하여 다중 루프를 탈출하기 위한 코드를 구현하여 보자 #include <stdio.h> void main(void) { int i, j; for (i = 0; i < 20; i++) { for (j = 0; j < 10; i++, j++) { if (j == 4) break; printf("%d %d\n", i, j); } if (i % 3) continue; } } 출력 예시 0 0 1 1 2 2 3 3 정답 코드 #include <stdio.h> void main(void) { int i, j, flag = 0; for (i = 0; i < 20; i++) { for (j = 0; j < 10; i++, j++) { if (j == 4) { flag = 1; break; } printf("%d %d\n", i, j); } if (flag != 0) break; if (i % 3) continue; } } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex47] 구구단 인쇄
문제 설명 2단부터 9단 까지 구구단을 인쇄하는 프로그램을 설계하라 2단 부터 9단까지 아래 형식으로 인쇄하되 각 단은 구분기호를 추가한다 각 단의 구분은 printf(“=======================\n”); 를 사용하라 // 각 단의 구분은 아래 코드를 이용한다 // printf("=======================\n"); #include <stdio.h> void main(void) { // 코드 작성 } 출력 예시 2단 2 * 1 = 2 2 * 2 = 4 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10 2 * 6 = 12 2 * 7 = 14 2 * 8 = 16 2 * 9 = 18 ======================= 3단 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 3 * 4 = 12 3 * 5 = 15 3 * 6 = 18 3 * 7 = 21 3 * 8 = 24 3 * 9 = 27 ======================= 4단 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 4 * 5 = 20 4 * 6 = 24 4 * 7 = 28 4 * 8 = 32 4 * 9 = 36 ======================= 5단 5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 5 * 6 = 30 5 * 7 = 35 5 * 8 = 40 5 * 9 = 45 ======================= 6단 6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36 6 * 7 = 42 6 * 8 = 48 6 * 9 = 54 ======================= 7단 7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49 7 * 8 = 56 7 * 9 = 63 ======================= 8단 8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64 8 * 9 = 72 ======================= 9단 9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81 ======================= 정답 코드 // 각 단의 구분은 아래 코드를 이용한다 // printf("=======================\n"); // 코드 작성 #include <stdio.h> void main(void) { int i, j; for (i = 2; i <= 9; i++) { printf("%d단\n", i); for (j = 1; j <= 9; j++) { printf("%d * %d = %d\n", i, j, i*j); } printf("=======================\n"); } } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex46] 별 자판기 - 트리별
문제 설명 출력 예시 모양의 별을 인쇄하는 코드를 이중 for루프로 구현하라 단, printf 한번에 * 또는 공백 또는 줄 바꿈 문자 하나씩만 인쇄해야 한다 #include <stdio.h> void main(void) { // 코드 작성 } 출력 예시 * *** ***** ******* ********* 정답 코드 #include <stdio.h> void Draw_Start5(void) { int line, blank, star; for (line = 0; line < 5; line++) { for (blank = 0; blank < 5 - line - 1; blank++) { printf(" "); } for (star = 0; star < line * 2 + 1; star++) { printf("*"); } printf("\n"); } } void main(void) { Draw_Start5(); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex45] 별 자판기 - 반대 역삼각별
문제 설명 출력 예시 모양의 별을 인쇄하는 코드를 이중 for루프로 구현하라 단, printf 한번에 * 또는 공백 또는 줄 바꿈 문자 하나씩만 인쇄해야 한다 #include <stdio.h> void main(void) { // 코드 작성 } 출력 예시 ***** **** *** ** * 정답 코드 #include <stdio.h> void Draw_Start4(void) { int line, blank, star; for (line = 0; line < 5; line++) { for (blank = 0; blank < line; blank++) { printf(" "); } for (star = 0; star < 5 - line; star++) { printf("*"); } printf("\n"); } } void main(void) { Draw_Start4(); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex44] 별 자판기 - 반대 삼각별
문제 설명 출력 예시 모양의 별을 인쇄하는 코드를 이중 for루프로 구현하라 단, printf 한번에 * 또는 공백 또는 줄 바꿈 문자 하나씩만 인쇄해야 한다 #include <stdio.h> void main(void) { // 코드 작성 } 출력 예시 * ** *** **** ***** 정답 코드 #include <stdio.h> void Draw_Start3(void) { int line, blank, star; for (line = 0; line < 5; line++) { for (blank = 0; blank < 5 - line -1; blank++) { printf(" "); } for (star = 0; star < line + 1; star++) { printf("*"); } printf("\n"); } } void main(void) { Draw_Start3(); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex43] 별 자판기 - 역삼각별
문제 설명 출력 예시 모양의 별을 인쇄하는 코드를 이중 for루프로 구현하라 단, printf 한번에 * 또는 공백 또는 줄 바꿈 문자 하나씩만 인쇄해야 한다 #include <stdio.h> void main(void) { // 코드 작성 } 출력 예시 ***** **** *** ** * 정답 코드 #include <stdio.h> void Draw_Start2(void) { int line, star; for (line = 0; line < 5; line++) { for (star = 0; star < 5 - line; star++) { printf("*"); } printf("\n"); } } void main(void) { Draw_Start2(); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex42] 별 자판기 - 삼각별
문제 설명 출력 예시 모양의 별을 인쇄하는 코드를 이중 for루프로 구현하라 단, printf 한번에 * 또는 공백 또는 줄 바꿈 문자 하나씩만 인쇄해야 한다 #include <stdio.h> void main(void) { // 코드 작성 } 출력 예시 * ** *** **** ***** 정답 코드 #include <stdio.h> void Draw_Start1(void) { int line, star; for (line = 0; line < 5; line++) { for (star = 0; star <= line; star++) { printf("*"); } printf("\n"); } } void main(void) { Draw_Start1(); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex41] 정수의 자리수의 합 구하기
문제 설명 입력 받은 정수 N(N >= 0)의 각 자리수의 합을 구하여 인쇄하라 scanf로 최대 10자리의 정수를 하나 입력 받아 각 자리수의 합을 인쇄하라 만약 12345가 입력되었다면 각 자리의 합인 15가 인쇄되어야 한다 만약 0이 입력되었다면 각 자리의 합은 0이 되어야 한다 #include <stdio.h> void main(void) { // 코드 작성 } 입력 예시 12345 출력 예시 15 정답 코드 #include <stdio.h> void main(void) { int N, sum = 0; scanf("%d", &N); while (N > 0) { sum += N % 10; N /= 10; } printf("%d", sum); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex40] 정수의 자리수 구하기
문제 설명 입력 받은 정수 N(N > 0)의 자리수를 인쇄하는 코드를 설계하라 scanf로 최대 10자리의 정수를 하나 입력 받아 자리수를 인쇄하라 만약 12345가 입력되었다면 5자리 수이므로 5를 인쇄한다 단, 01234와 같이 0으로 시작하는 숫자는 입력되지 않는 것으로 본다 #include <stdio.h> void main(void) { // 코드 작성 } 입력 예시 12345 출력 예시 5 정답 코드 #include <stdio.h> void main(void) { int N, cnt = 0; scanf("%d", &N); while (N > 0) { N /= 10; cnt++; } printf("%d", cnt); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex39] 3,6,9 게임
문제 설명 다음에서 요구하는 3,6,9 게임 프로그램을 설계하라 정수 N을 scanf로 입력 받아서 1부터 N까지 다음과 같이 인쇄하라 3의 배수와 숫자에 3이 들어가는 경우는 모두 값 대신 %를 인쇄한다 3, 6, 9, 12, 13, … 23 등은 모두 숫자대신 %를 인쇄한다 N에 도달하면 N대신 “SUCCESS”를 인쇄하라 #include <stdio.h> void main(void) { // 코드 작성 } 입력 설명 N <= 99 입력 예시 12 출력 예시 1 2 % 4 5 % 7 8 % 10 11 SUCCESS 정답 코드 #include <stdio.h> void main(void) { int i, N; scanf("%d", &N); for (i = 1; i < N; i++) { if (((i % 3) == 0) || ((i % 10) == 3) || ((i / 10) == 3)) { printf("%%\n"); } else { printf("%d\n", i); } } printf("SUCCESS\n"); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex38] ‘D’부터 입력 받은 글자 사이를 2개씩 건너 띄면서 인쇄하라
문제 설명 ‘D’부터 입력 받은 글자 사이를 2개씩 건너 띄면서 인쇄하라 #include <stdio.h> void main(void) { // 코드 작성 } 입력 설명 입력 받은 알파벳 'D' 이상 'Z' 이하임 입력 예시 H 출력 예시 D F H 정답 코드 #include <stdio.h> void main(void) { char i, c; scanf("%c", &c); for (i = 'D'; i <= c; i += 2) { printf("%c\n", i); } } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex37] ‘A’부터 입력 받은 알파벳까지 알파벳을 인쇄
문제 설명 ‘A’부터 입력 받은 까지 연속된 알파벳을 인쇄하라 #include <stdio.h> void main(void) { // 코드 작성 } 입력 설명 입력 받은 알파벳 'A' 이상 'Z' 이하임 입력 예시 G 출력 예시 A B C D E F G 정답 코드 #include <stdio.h> void main(void) { char i, c; scanf("%c", &c); for (i = 'A'; i <= c; i++) { printf("%c\n", i); } } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex36] 숫자를 7 부터 입력 받은 개수 만큼 연속 인쇄하는 코드
문제 설명 숫자를 7 부터 입력 받은 개수 만큼 연속된 수를 인쇄하라 #include <stdio.h> void main(void) { // 코드 작성 } 입력 예시 5 출력 예시 7 8 9 10 11 정답 코드 #include <stdio.h> void main(void) { int i; int n; scanf("%d", &n); for (i = 7; i < (n + 7); i++) { printf("%d\n", i); } } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex35] *을 입력 받은 수 만큼 인쇄하는 코드
문제 설명 입력 받은 수 만큼 *을 인쇄하라(단, for 루프 1번에 * 한 개 인쇄) #include <stdio.h> void main(void) { // 코드 작성 } 입력 설명 입력 받은 수는 1 이상 30 이하임 입력 예시 9 출력 예시 ********* 정답 코드 #include <stdio.h> void main(void) { int i, n; scanf("%d", &n); for (i = 0; i < n; i++) { printf("*"); } } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex34] 0부터 20까지의 수에서 3의 배수를 인쇄하는 코드
문제 설명 0부터 20까지의 수에서 3의 배수만 인쇄하는 프로그램을 설계하라 0과 20도 반복문 조건 체크 대상에 포함되어야 한다 #include <stdio.h> void main(void) { // 코드 작성 } 출력 예시 0 3 6 9 12 15 18 정답 코드 #if 0 #include <stdio.h> void main(void) { int i; for (i = 0; i <= 20; i++) { if ((i % 3) == 0) printf("%d\n", i); } } #endif #include <stdio.h> void main(void) { int i; for (i = 0; i <= 20; i += 3) { printf("%d\n", i); } } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex33] 0 부터 20 까지의 수에서 짝수를 인쇄하는 코드
문제 설명 0부터 20까지의 수에서 짝수만 인쇄하는 프로그램을 설계하라 0과 20도 인쇄에 포함되어야 한다 #include <stdio.h> void main(void) { // 코드 작성 } 출력 예시 0 2 4 6 8 10 12 14 16 18 20 정답 코드 #if 0 #include <stdio.h> void main(void) { int i; for (i = 0; i <= 20; i++) { if ((i % 2) == 0) printf("%d\n", i); } } #endif #include <stdio.h> void main(void) { int i; for (i = 0; i <= 20; i += 2) { printf("%d\n", i); } } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex32] 케이크 자르기
문제 설명 아래와 같이 둥근 케이크를 2번의 칼질로 4조각으로 나누려고 한다. 케이크의 둘레에 시계방향으로 1~100까지 일정한 간격으로 번호가 부여되어 있다. 칼로 자르려고 하는 부분은 2개의 정수로 표현한다. 칼로 자르려는 부분이 2군데 주어질 때 칼로 잘리는 부분이 교차하는지 유무를 판단하는 프로그램을 작성하시오. 아래 예는 12 53과 99 45를 자른 예를 나타낸다. #include <stdio.h> int Solve(int A, int B, int C, int D) { // 여기서부터 작성 } int main(void) { int a, b, c, d, cross; // 입력받는 부분 scanf("%d %d", &a, &b); scanf("%d %d", &c, &d); cross = Solve(a, b, c, d); // 출력하는 부분 if (cross == 1) printf("cross"); else printf("not cross"); return 0; } 입력 설명 첫 번째 줄에는 첫 번째 현의 정보를 나타내는 두 정수가 입력된다. 두 번째 줄에는 두 번째 현의 정보를 나타내는 두 정수가 입력된다. 출력 설명 주어진 두 잘린 부분이 교차한다면 "cross", 교차하지 않는다면 "not cross"를 출력한다. 입력 예시 12 53 99 45 출력 예시 cross 부가정보 [입력 예시 2] 23 77 79 83 [출력 예시 2] not cross 정답 코드 #include <stdio.h> int Solve(int A, int B, int C, int D) { if (A > B) { int tmp = A; A = B; B = tmp; } if (C > D) { int tmp = C; C = D; D = tmp; } if (((A > C) && (D > A) && (D < B)) || ((A < C) && (B > C) && (B < D))) { return 1; } return 0; } int main(void) { int a, b, c, d, cross; // 입력받는 부분 scanf("%d %d", &a, &b); scanf("%d %d", &c, &d); cross = Solve(a, b, c, d); // 출력하는 부분 if (cross == 1) printf("cross"); else printf("not cross"); return 0; } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex31] 시간차 구하기
문제 설명 HH:MM:SS(시:분:초)의 형태로 표시하는 2개의 시간이 주어졌을 때, 시간차를 구하는 프로그램을 작성한다. 2개의 시간은 최대 24시간 차이가 난다고 가정한다. #include <stdio.h> int main(void) { int h1, m1, s1, h2, m2, s2; int h, m, s; // 입력받는 부분 scanf("%d:%d:%d", &h1, &m1, &s1); scanf("%d:%d:%d", &h2, &m2, &s2); // 여기서부터 작성 // 출력하는 부분 printf("%02d:%02d:%02d", h, m, s); return 0; } 입력 설명 입력은 두 개의 시간이 입력된다. 시간이 입력되는 형태는 다음과 같다. "HH:MM:SS" HH는 시, MM은 분, SS는 초를 뜻한다. 만약 시나 분, 초가 한 자리 숫자일 경우 앞에 0을 붙이게 된다. (0≤HH≤23, 0≤MM, SS≤59) 앞에 입력된 시간보다 뒤의 입력된 시간이 더 늦은 시간이라고 가정한다 출력 설명 입력된 2개의 시간에 대한 시간차를 HH:MM:SS의 형태로 출력한다. 입력 예시 20:00:00 04:00:00 출력 예시 08:00:00 정답 코드 #include <stdio.h> int main(void) { int h1, m1, s1, h2, m2, s2; int h, m, s; int ss, es; // 입력받는 부분 scanf("%d:%d:%d", &h1, &m1, &s1); scanf("%d:%d:%d", &h2, &m2, &s2); // 여기서부터 작성 ss = (h1 * 60 + m1) * 60 + s1; es = (h2 * 60 + m2) * 60 + s2; if (es > ss) ss = es - ss; else ss = 3600 * 24 - ss + es; h = ss / (60 * 60); m = ss % (60 * 60) / 60; s = ss % 60; // 출력하는 부분 printf("%02d:%02d:%02d", h, m, s); return 0; } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex30] 두 수의 거리
문제 설명 두 정수를 입력 받아, 두 수의 차이를 절대값으로 인쇄하라. #include <stdio.h> int Solve(int A, int B) { //여기서 부터 작성 } int main(void) { int A, B; int sol; scanf("%d %d", &A, &B); sol = Solve(A, B); printf("%d\n", sol); return 0; } 입력 설명 공백으로 구분하여 두 정수를 입력한다. 출력 설명 두 수의 차이를 절대값으로 출력한다. 입력 예시 15 12 출력 예시 3 정답 코드 #include <stdio.h> int Solve(int A, int B) { //여기서 부터 작성 int diff; if (A > B) { diff = A - B; } else { diff = B - A; } return diff; } int main(void) { int A, B; int sol; scanf("%d %d", &A, &B); sol = Solve(A, B); printf("%d\n", sol); return 0; } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex29] 성적 계산 함수
문제 설명 다음과 같은 조건을 만족하는 성적처리 함수를 설계하라 함수명은 임의로 정하고 parameter는 int이고 return은 char로 지정한다 성적 기준은 다음과 같다 100~91 => A, 90~81 => B, 80~71 => C, 70~61 => D, 60이하 => F 성적을 입력하면 학점을 리턴 한다 (문자 A,B,C,D,F 중 하나) 단, 입력된 값이 0 ~ 100을 벗어나면 문자 ‘X’를 리턴 한다 #include <stdio.h> char func(int score) { // 코드 작성 } void main(void) { int score; scanf("%d", &score); printf("%c\n", func(score)); } 입력 예시 90 출력 예시 B 정답 코드 #include <stdio.h> /* char func(int s) { if ((s < 0) || (s > 100)) { return 'X'; } switch ((s - 1) / 10) { case 0: case 1: case 2: case 3: case 4: case 5: return 'F'; case 6: return 'D'; case 7: return 'C'; case 8: return 'B'; case 9: case 10: return 'A'; } } */ char func(int s) { char * r = "FFFFFFDCBAA"; if ((s < 0) || (s > 100)) { return 'X'; } return r[(s -1) / 10]; } void main(void) { int score; scanf("%d", &score); printf("%c\n", func(score)); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex28] 실수 값에 제일 가까운 정수 값 구하기
문제 설명 입력된 실수 값에 제일 가까운 정수 값 구하기 음수일 때도 정확히 가장 가까운 정수 값이 나올 수 있도록 작성한다 (예) 3.64는 4에 가까운 정수이고 -3.64이면 -4에 가까운 정수이다 #include <stdio.h> int func(float v) { // 코드 작성 } void main(void) { float a; scanf("%f", &a); printf("%d\n", func(a)); } 입력 예시 3.64 출력 예시 4 정답 코드 #include <stdio.h> int func(float v) { // 코드 작성 float bias = 0.5f; return (int)(v + ((v >= 0) ? (bias) : (-bias))); } void main(void) { float a; scanf("%f", &a); printf("%d\n", func(a)); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex27] L, E, W 찾기
문제 설명 입력된 글자가 ‘L’, ‘E’, ‘W’이면 ‘*’ 리턴, 그 외 글자는 그대로 리턴 #include <stdio.h> char func(char c) { // 코드 작성 } void main(void) { char c; scanf("%c", &c); printf("%c\n", func(c)); } 입력 예시 L 출력 예시 * 정답 코드 #include <stdio.h> char func(char c) { // 코드 작성 if ((c == 'L') || (c == 'E') || (c == 'W')) return '*'; return c; } void main(void) { char c; scanf("%c", &c); printf("%c\n", func(c)); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex26] 대문자 소문자 변경
문제 설명 입력된 글자를 대문자는 소문자로 소문자는 대문자로 바꿔 리턴 그 외의 글자는 ‘0’을 리턴한다. #include <stdio.h> char func(char c) { // 코드 작성 } void main(void) { char c; scanf("%c", &c); printf("%c\n", func(c)); } 입력 예시 F 출력 예시 f 정답 코드 #include <stdio.h> char func(char c) { // 코드 작성 if ((c >= 'A') && (c <= 'Z')) return c + ('a' - 'A'); if ((c >= 'a') && (c <= 'z')) return c - ('a' - 'A'); return '0'; } void main(void) { char c; scanf("%c", &c); printf("%c\n", func(c)); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex25] 소문자 f ~ z 찾기
문제 설명 입력된 문자가 소문자이면서 f ~ z 사이 문자면 1 아니면 0 리턴 입력은 반드시 대문자 또는 소문자 알파벳만 넣을 수 있다고 보장 할 수 없다 따라서 대문자도 소문자도 아니면 그냥 0을 리턴 하도록 한다 ‘f’와 ‘z’ 포함임. 즉, ‘f’나 ‘z’이면 1을 리턴해야 함 #include <stdio.h> int func(char c) { // 코드 작성 } void main(void) { char c; scanf("%c", &c); printf("%d\n", func(c)); } 입력 예시 g 출력 예시 1 정답 코드 #include <stdio.h> int func(char c) { // 코드 작성 return (c >= 'f') && (c <= 'z'); } void main(void) { char c; scanf("%c", &c); printf("%d\n", func(c)); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex24] 대문자 또는 소문자 찾기
문제 설명 글자가 대문자 또는 소문자면 1 아니면 0을 리턴하는 함수 설계 #include <stdio.h> int f1(char c) { // 구현 } void main(void) { char c; scanf("%c", &c); printf("%d\n", f1(c)); } 입력 예시 C 출력 예시 1 정답 코드 #include <stdio.h> int f1(char c) { // 구현 return ((c >= 'A') && (c <= 'Z')) || ((c >= 'a') && (c <= 'z')); } void main(void) { char c; scanf("%c", &c); printf("%d\n", f1(c)); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex23] 4~10 사이 숫자 찾기
문제 설명 숫자가 4 ~ 10 사이 값이면 1 아니면 0을 리턴하는 함수 설계 4와 10은 미포함임, 즉, 4나 10이면 0을 리턴해야 함 #include <stdio.h> int f1(int num) { // 코드 구현 } void main(void) { int num; scanf("%d", &num); printf("%d\n", f1(num)); } 입력 예시 5 출력 예시 1 정답 코드 #include <stdio.h> int f1(int num) { // 코드 구현 return (num > 4) && (num < 10); } void main(void) { int num; scanf("%d", &num); printf("%d\n", f1(num)); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex22] 3의 배수 또는 5의 배수 찾기
문제 설명 숫자가 3 또는 5의 배수이면 1 아니면 0을 리턴하는 함수 설계 #include <stdio.h> int f1(int num) { // 코드 구현 } void main(void) { int num; scanf("%d", &num); printf("%d\n", f1(num)); } 입력 예시 15 출력 예시 1 정답 코드 #include <stdio.h> int f1(int num) { // 코드 구현 return !(num % 3) || !(num % 5); } void main(void) { int num; scanf("%d", &num); printf("%d\n", f1(num)); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex21] 3의 배수 값인지 확인하는 함수
문제 설명 입력 값이 3의 배수면 1, 아니면 0을 리턴하는 함수를 설계하라 #include <stdio.h> int multiple_of_3(int num) { // 코드 구현 } void main(void) { int num; scanf("%d", &num); printf("%d\n", multiple_of_3(num)); } 입력 예시 3 출력 예시 1 정답 코드 #include <stdio.h> int multiple_of_3(int num) { // 코드 구현 return num % 3 == 0; } void main(void) { int num; scanf("%d", &num); printf("%d\n", multiple_of_3(num)); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex20] 2, 3, 5의 배수 판단하기
문제 설명 입력 받은 값이 2,3,5의 배수인지를 판단하는 함수를 설계하라 2의 배수면 2, 3의 배수면 3, 5의 배수면 5를 2,3,5 배수가 아니면 0을 리턴 단, 2,3 공배수면 2리턴, 3,5 공배수면 3리턴, 2,5 공배수면 2리턴, 2,3,5 공배수면 2리턴 #include <stdio.h> int compare(int num) { // 코드 구현 } void main(void) { int num; scanf("%d", &num); printf("%d\n", compare(num)); } 입력 예시 33 출력 예시 3 정답 코드 #include <stdio.h> int compare(int num) { // 코드 구현 if (num % 2 == 0) return 2; if (num % 3 == 0) return 3; if (num % 5 == 0) return 5; return 0; } void main(void) { int num; scanf("%d", &num); printf("%d\n", compare(num)); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex19] 홀짝을 맞춰라 2
문제 설명 예제 5-3에서 짝수면 0, 홀수면 1을 리턴하도록 함수를 재설계하라 #include <stdio.h> int Check_Odd_Even(int num) { // 코드 구현 } void main(void) { int num; scanf("%d", &num); printf("%d\n", Check_Odd_Even(num)); } 입력 예시 3 출력 예시 1 정답 코드 #include <stdio.h> int Check_Odd_Even(int num) { // 코드 구현 return num % 2; } void main(void) { int num; scanf("%d", &num); printf("%d\n", Check_Odd_Even(num)); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex18] 홀짝을 맞춰라 1
문제 설명 입력 받은 수의 홀수, 짝수 여부를 리턴하는 함수를 설계하라 정수를 받아서 짝수면 2, 홀수면 1을 리턴하는 함수를 설계하라 #include <stdio.h> int Check_Odd_Even(int num) { // 코드 구현 } void main(void) { int num; scanf("%d", &num); printf("%d\n", Check_Odd_Even(num)); } 입력 예시 3 출력 예시 1 정답 코드 #include <stdio.h> int Check_Odd_Even(int num) { // 코드 구현 if (num % 2 == 0) return 2; else return 1; } void main(void) { int num; scanf("%d", &num); printf("%d\n", Check_Odd_Even(num)); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex17] 짝수의 개수
문제 설명 4자리 양의 정수의 각 자리수의 값이 짝수인 개수를 구하는 함수를 설계 하시오. 예를들어, 2345면 각 자리수의 값이 2, 3, 4, 5 이고 이 중에 2, 4가 짝수 이므로 2가 리턴되면 된다. 짝수는 2로 나누어 떨어지는 수이다. #include <stdio.h> int Solve(int A) { //여기서 부터 작성 } int main(void) { int A; int sol; scanf("%d", &A); sol = Solve(A); printf("%d", sol); return 0; } 입력 설명 4자리 양의 정수가 입력 출력 설명 4자리 양의 정수의 각 자리수 값이 짝수인 개수를 출력 입력 예시 2345 출력 예시 2 정답 코드 #include <stdio.h> int Solve(int A) { //여기서 부터 작성 int a, b, c, d; int cnt = 4; a = A / 1000; A %= 1000; b = A / 100; A %= 100; c = A / 10; d = A % 10; cnt -= a % 2 + b % 2 + c % 2 + d % 2; return cnt; } int main(void) { int A; int sol; scanf("%d", &A); sol = Solve(A); printf("%d", sol); return 0; } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex16] 3개의 정수 중 홀수의 개수를 리턴하는 함수 설계
문제 설명 세 개의 양의 정수 A, B, C를 입력 받아 홀수의 개수를 리턴하는 함수를 설계 하시오. 세 개 모두 홀수이면 3을, 두 개면 2를, 한 개면 1을, 없으면 0을 리턴한다. #include <stdio.h> int Solve(int A, int B, int C) { int cnt = 0; // 여기서부터 작성 return cnt; } int main(void) { int A, B, C; int sol; scanf("%d %d %d", &A, &B, &C); sol = Solve(A, B, C); printf("%d", sol); return 0; } 입력 설명 세 개의 양의 정수 A, B, C가 입력된다. 출력 설명 조건에 맞게 3, 2, 1, 0중 하나를 인쇄한다. 입력 예시 7 5 9 출력 예시 3 정답 코드 #include <stdio.h> int Solve(int A, int B, int C) { int cnt = 0; // 여기서부터 작성 cnt = A % 2 + B % 2 + C % 2; return cnt; } int main(void) { int A, B, C; int sol; scanf("%d %d %d", &A, &B, &C); sol = Solve(A, B, C); printf("%d", sol); return 0; } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex15] ASCII 숫자 문자를 정수 숫자로 반환하는 함수
문제 설명 ASCII 숫자(‘1’)를 넣으면 정수(1)로 바꿔주는 함수를 설계하라 문자는 ‘0’ ~ ‘9’ 사이로 입력되며 주어진 템플릿 코드를 사용하여 함수를 설계한다 #include <stdio.h> int Change_Char_to_Int(char num) { // 코드 작성 } void main(void) { char a; scanf("%c", &a); printf("%d\n", Change_Char_to_Int(a)); } 입력 예시 1 출력 예시 1 정답 코드 #include <stdio.h> int Change_Char_to_Int(char num) { // 코드 작성 return num - '0';//return num - 0x30; } void main(void) { char a; scanf("%c", &a); printf("%d\n", Change_Char_to_Int(a)); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex14] 대문자를 소문자로 전환하는 함수 설계
문제 설명 대문자를 넣으면 소문자로 바꿔주는 함수를 설계하라 문자는 ‘A’ ~ ‘Z’ 사이로 입력되며 주어진 템플릿 코드를 사용하여 함수를 설계한다 #include <stdio.h> char Change_Case(char upper) { // 코드 작성 } void main(void) { char a; scanf("%c" , &a ); printf("%c => %c\n", a, Change_Case(a)); } 입력 예시 A 출력 예시 A => a 정답 코드 #include <stdio.h> char Change_Case(char upper) { // 코드 작성 return upper + ('a' - 'A'); // return upper + 0x20; } void main(void) { char a; scanf("%c" , &a ); printf("%c => %c\n", a, Change_Case(a)); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex13] 차량 5부제 코드 생성
문제 설명 차량번호(4자리 정수)를 받아서 5부제 코드를 리턴하는 함수 설계 양의 정수만 입력되며 차량번호 끝자리로 판단하여 1 ~ 5 까지로 부여된다 끝자리 0, 5 -> 1 리턴 1, 6 -> 2 리턴 2, 7 -> 3 리턴 3, 8 -> 4 리턴 4, 9 -> 5 리턴 #include <stdio.h> int make_group(int car); void main(void) { int car; scanf("%d", &car); printf("%d\n", make_group(car)); } int make_group(int car) { // 코드 작성 } 입력 예시 1234 출력 예시 5 정답 코드 #include <stdio.h> int make_group(int car); void main(void) { int car; scanf("%d", &car); printf("%d\n", make_group(car)); } int make_group(int car) { // 코드 작성 return (car % 5) + 1; } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex12] float 값의 가장 가까운 정수 값을 넘겨주는 함수
문제 설명 양의 실수(float)를 입력 받아 가까운 정수를 리턴하는 함수 설계 #include <stdio.h> int find_int(float value); void main(void) { int r; float num; scanf("%f", &num); r = find_int(num); printf("%d\n", r); } int find_int(float value) { // 코드 작성 } 입력 예시 2.3 출력 예시 2 정답 코드 #include <stdio.h> int find_int(float value); void main(void) { int r; float num; scanf("%f", &num); r = find_int(num); printf("%d\n", r); } int find_int(float value) { // 코드 작성 return (int)(value + 0.5f); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex11] 반지름을 입력하면 원의 넓이를 구하는 함수
문제 설명 반지름(float)를 입력 받아서 원의 넓이 구하기 함수 설계 #include <stdio.h> float compute_circle_area(float radius); void main(void) { float r; scanf("%f", &r); printf("%f\n", compute_circle_area(r)); } float compute_circle_area(float radius) { float pi = 3.14f; // 코드 작성 } 입력 예시 3.0 출력 예시 28.260000 정답 코드 #include <stdio.h> float compute_circle_area(float radious); void main(void) { float r; scanf("%f", &r); printf("%f\n", compute_circle_area(r)); } float compute_circle_area(float radious) { float pi = 3.14f; // 코드 작성 radious = pi * radious * radious; return radious; } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex10] 함수의 분석 연습
문제 설명 에러가 없도록 다음 함수들을 선언하라 #include <stdio.h> // 사용할 함수들의 선언 void main(void) { printf("sqr=%d\n", sqr(3)); printf("area=%d\n", area(3, 5)); printf("arc=%f\n", compute_circle_arc(4.1f)); } int sqr(int x) { return x * x; } int area(int x, int y) { return x * y; } float compute_circle_arc(float radious) { float pi = 3.141592f; radious = 2 * radious * pi; return radious; } 출력 예시 sqr=9 area=15 arc=25.761053 정답 코드 #include <stdio.h> // 사용할 함수들의 선언 int sqr(int x); int area(int x, int y); float compute_circle_arc(float radious); void main(void) { printf("sqr=%d\n", sqr(3)); printf("area=%d\n", area(3, 5)); printf("arc=%f\n", compute_circle_arc(4.1f)); } int sqr(int x) { return x * x; } int area(int x, int y) { return x * y; } float compute_circle_arc(float radious) { float pi = 3.141592f; radious = 2 * radious * pi; return radious; } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex09] 함수의 선언
문제 설명 프로그램을 오류가 발생하지 않도록 함수를 선언하라 #include <stdio.h> // 여기에 함수 선언 void main(void) { weight(50); } void weight(int w) { printf("Weight = %d Kg\n", w); } 출력 예시 Weight = 50 Kg 정답 코드 #include <stdio.h> // 여기에 함수 선언 void weight(int w); void main(void) { weight(50); } void weight(int w) { printf("Weight = %d Kg\n", w); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex08] 100원 미만을 반올림 하는 코드를 구현
문제 설명 입력받은 4자리 이상 정수에서 100원 미만을 반올림 하는 코드를 구현하시오 즉, 50원 이상이면 올림처리하고 49원 이하이면 내림처리를 한다 예를들어, 1249원이면 100원 미만이 49원이므로 1200원이 된다. 4350원이면 100원 미만이 50원이므로 4400원이 된다 #include <stdio.h> int main(void) { int A; scanf("%d", &A); printf("%d\n", A); return 0; } 입력 설명 4자리 이상의 정수 입력 출력 설명 100원 미만을 반올림 처리한 결과를 출력 입력 예시 1249 출력 예시 1200 정답 코드 #include <stdio.h> int main(void) { int A; scanf("%d", &A); A = (A + 50) / 100 * 100; printf("%d\n", A); return 0; } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex07] 100자리 값을 0으로 만들기
문제 설명 3~9자리 정수를 입력받아 100자리 값을 0으로 만드는 코드를 구현하라 예를들어 1234가 입력되면 100자리 2를 0으로 만들어서 1034가 되게 하시오 #include <stdio.h> int main(void) { int A; scanf("%d", &A); // 코드 작성 printf("%d\n", A); return 0; } 입력 설명 3~9자리 정수 입력 출력 설명 100자리 값을 0으로 만들어서 출력 입력 예시 1234 출력 예시 1034 정답 코드 #include <stdio.h> int main(void) { int A; scanf("%d", &A); A = A - (A / 100 % 10 * 100); printf("%d\n", A); return 0; } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex06] 정수 3개 합과 평균 구하기
문제 설명 공백으로 분리된 정수 3개를 입력 받아 합과 평균을 인쇄하라 #include<stdio.h> void main(void) { int a, b, c, sum; float avg; // 코드 작성 printf("%d, %f\n", sum, avg); } 입력 예시 10 20 30 출력 예시 60, 20.000000 정답 코드 #include<stdio.h> void main(void) { int a, b, c, sum; float avg; // 코드 작성 scanf("%d %d %d", &a, &b, &c); sum = a + b + c; avg = sum / 3.0f; printf("%d, %f\n", sum, avg); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex05] 16진수의 자리수 분리
문제 설명 4자리 16진수 수를 입력 받아 각 자리 값을 인쇄하라 #include<stdio.h> void main(void) { unsigned int x; unsigned int x4, x3, x2, x1; scanf("%x", &x); // 코드 작성 printf("%X, %X, %X, %X", x4, x3, x2, x1); } 입력 예시 AB9D 출력 예시 A, B, 9, D 정답 코드 #include<stdio.h> void main(void) { unsigned int x; unsigned int x4, x3, x2, x1; scanf("%x", &x); // 코드 작성 x4 = (x / (16 * 16 * 16)); x3 = ((x % (16 * 16 * 16)) / (16 * 16)); x2 = ((x % (16 * 16)) / 16); x1 = (x % 16); printf("%X, %X, %X, %X", x4, x3, x2, x1); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex04] 가격 절사 판매
문제 설명 변수 p에 저장된 값을 1000원 미만을 절사하는 코드를 구현하라 #include <stdio.h> void main(void) { int p = 123456; p = printf("%d\n", p); } 출력 예시 123000 정답 코드 #include <stdio.h> void main(void) { int p = 123456; p = p - (p % 1000); printf("%d\n", p); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex03] /, % 연산자의 활용 => 10진수 자리수 분리
문제 설명 4자리 정수의 각 자리 값을 추출하여 a4, a3, a2, a1에 저장하라 #include <stdio.h> void main(void) { int a = 2345; int a4, a3, a2, a1; a4 = a3 = a2 = a1 = printf("1000자리=%d, 100자리=%d, 10자리=%d, 1자리=%d\n", a4, a3, a2, a1); } 출력 예시 1000자리=2, 100자리=3, 10자리=4, 1자리=5 정답 코드 #include <stdio.h> void main(void) { int a = 2345; int a4, a3, a2, a1; // 1의 자리부터 코딩 a4 = (a / 1000); a3 = (a / 100) % 10; a2 = (a / 10) % 10; a1 = a % 10; printf("1000자리=%d, 100자리=%d, 10자리=%d, 1자리=%d\n", a4, a3, a2, a1); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex02] 다양한 입력 및 출력 연습
문제 설명 다음 코드에 들어갈 입력 및 인쇄 코드를 설계하라 입력 예시와 같이 입력 시 출력 예시와 같이 인쇄가 되어야 한다 [주의] printf 사용시 출력 예시와 완전히 동일하도록 공백, ‘,’ 등의 인쇄에 주의하여야 한다 #include <stdio.h> void main(void) { char name[31]; int age; float height; char blood_type; char nationality[11]; // 코드 작성 } 입력 예시 Hong Gil Dong 100 182.9 A KOR 출력 예시 Hong Gil Dong, 100, 182.899994 A, KOR 정답 코드 #include <stdio.h> void main(void) { char name[31]; int age; float height; char blood_type; char nationality[11]; // 코드 작성 gets(name); scanf("%d %f %c %s", &age, &height, &blood_type, nationality); printf("%s, %d, %f\n", name, age, height); printf("%c, %s", blood_type, nationality); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
[ex01] printf 함수 연습
문제 설명 printf 함수를 이용하여 출력 예시와 같이 인쇄되도록 코드를 설계하라 #include <stdio.h> void main(void) { } 출력 예시 Hello C World! Welcome!! 정답 코드 #include <stdio.h> void main(void) { printf("Hello C World!\n"); printf("Welcome!!\n"); } 메모 printf 내부의 \n 습관화 필요
Study
· 2025-03-18
<
>
Touch background to close