🌟 프로그램 1, 계산기
더보기
#include <stdio.h>
// 사칙연산 함수들
int add(int a, int b) {
return a + b;
}
int min(int a, int b) {
return a - b;
}
int mul(int a, int b) {
return a * b;
}
int div(int a, int b) {
if (b != 0) {
return a / b;
} else {
printf("0으로 나눌 수 없습니다.\n");
return 0; // 오류 처리
}
}
int per(int a, int b) {
if (b != 0) {
return a % b;
} else {
printf("0으로 나눌 수 없습니다.\n");
return 0; // 오류 처리
}
}
int rem(int a, int b) {
if (b != 0) {
return a / b; // 몫 계산
} else {
printf("0으로 나눌 수 없습니다.\n");
return 0; // 오류 처리
}
}
int main() {
int x, y;
char z;
// 사용자로부터 두 정수와 연산자 입력 받기
printf("정수(2개)를 입력하세요: ");
scanf("%d %d", &x, &y);
printf("(+, -, *, /, %, //) 중에 하나 입력해주세요: ");
scanf(" %c", &z); // 공백을 넣어 앞의 입력 버퍼 비우기
// 연산 처리
int plus = add(x, y);
int miu = min(x, y);
int mull = mul(x, y);
int dive = div(x, y);
int perc = per(x, y);
int remm = rem(x, y);
// 연산자에 맞는 결과 출력
switch (z) {
case '+':
printf("%d + %d = %d\n", x, y, plus);
break;
case '-':
printf("%d - %d = %d\n", x, y, miu);
break;
case '*':
printf("%d * %d = %d\n", x, y, mull);
break;
case '/':
if (y != 0) {
printf("%d / %d = %d\n", x, y, dive);
}
break;
case '%':
if (y != 0) {
printf("%d %% %d = %d\n", x, y, perc);
}
break;
case '//': // 몫 연산자
if (y != 0) {
printf("%d // %d = %d\n", x, y, remm);
}
break;
default:
printf("잘못된 연산자입니다.\n");
break;
}
return 0;
}
🌟 프로그램 2, 도형 넓이, 둘레 구하기
더보기
#include <stdio.h>
// 사각형의 넓이, 원의 넓이, 삼각형의 넓이, 원의 둘레
int quad(int a, int b) {
return a * b;
}
// 원의 넓이 (파이 값을 float로 다루기)
float circle(int a) {
return a * a * 3.14; // 원의 넓이: π * r^2
}
// 삼각형의 넓이
float triangle(int a, int b) {
return a * b * 0.5; // 삼각형의 넓이: 0.5 * 밑변 * 높이
}
// 원의 둘레
float pie(int a) {
return 2 * 3.14 * a; // 원의 둘레: 2 * π * r
}
int main() {
int x, y, z;
printf("1. 사각형의 넓이\n");
printf("2. 원의 넓이\n");
printf("3. 삼각형의 넓이\n");
printf("4. 원의 둘레\n");
printf("1, 2, 3, 4 중에 하나 입력해주세요: ");
scanf(" %d", &z); // 공백을 넣어 앞의 입력 버퍼 비우기
// 연산자에 맞는 결과 출력
switch (z) {
case 1: // 사각형의 넓이
printf("사각형의 두 변의 길이를 입력하세요: ");
scanf("%d %d", &x, &y);
printf("사각형의 넓이 = %d * %d = %d\n", x, y, quad(x, y));
break;
case 2: // 원의 넓이
printf("원의 반지름을 입력하세요: ");
scanf("%d", &x);
printf("원의 넓이 = %d * %d * 3.14 = %.2f\n", x, x, circle(x));
break;
case 3: // 삼각형의 넓이
printf("삼각형의 밑변과 높이를 입력하세요: ");
scanf("%d %d", &x, &y);
printf("삼각형의 넓이 = %d * %d * 0.5 = %.2f\n", x, y, triangle(x, y));
break;
case 4: // 원의 둘레
printf("원의 반지름을 입력하세요: ");
scanf("%d", &x);
printf("원의 둘레 = 2 * 3.14 * %d = %.2f\n", x, pie(x));
break;
default:
printf("잘못된 선택입니다.\n");
break;
}
return 0;
}
🌟 프로그램 3, 양-0-음수, 홀-짝수, 큰-작은 수 찾기
더보기
#include <stdio.h>
int analyze_numbers() {
int nums;
printf("몇 개의 숫자를 입력하겠습니까?: ");
scanf("%d", &nums);
int arr[nums];
int max, min;
printf("%d개의 숫자를 입력하세요.\n", nums);
printf("숫자를 입력하세요: ");
scanf("%d", &arr[0]);
max = min = arr[0];
for (int i = 1; i < nums; i++) {
scanf("%d", &arr[i]);
if (arr[i] > max) {
max = arr[i];
} else if (arr[i] < min) {
min = arr[i];
}
}
printf("가장 큰 수: %d\n", max);
printf("가장 작은 수: %d\n", min);
for (int j = 0; j < nums; j++) {
const char* parity = (arr[j] % 2 == 0) ? "짝수" : "홀수";
const char* sign = (arr[j] > 0) ? "양수" : ((arr[j] == 0) ? "0" : "음수");
printf("%d: %s, %s\n", arr[j], parity, sign);
}
return 0;
}
int main() {
analyze_numbers();
return 0;
}
🌟 프로그램 4, 가장 큰 수 - 작은 수 사이의 합
더보기
#include <stdio.h>
int sum_of_numbers() {
int arr[3];
int max, min;
int sum = 0;
printf("숫자를 입력하세요: ");
scanf("%d", &arr[0]);
max = min = arr[0];
for (int i = 1; i < 3; i++) {
scanf("%d", &arr[i]);
if (arr[i] > max) {
max = arr[i];
} else if (arr[i] < min) {
min = arr[i];
}
}
printf("가장 큰 수: %d\n", max);
printf("가장 작은 수: %d\n", min);
for (int j = min; j <= max; j++) {
sum += j;
}
printf("합: %d", sum);
return 0;
}
int main() {
sum_of_numbers();
return 0;
}
🌟 프로그램 5, 별찍기
더보기
#include <stdio.h>
int draw_shape(int shape_num) {
int i, j;
if (shape_num == 1) {
for (i = 1; i <= 6; i++) {
for (j = 0; j < i; j++) {
printf("*");
}
printf("\n");
}
}
else if (shape_num == 2) {
for (i = 1; i <= 6; i++) {
for (j = 0; j < (7 - i); j++) {
printf(" ");
}
for (j = 0; j < i; j++) {
printf("*");
}
printf("\n");
}
}
else if (shape_num == 3) {
for (i = 6; i >= 1; i--) {
for (j = 0; j < i; j++) {
printf("*");
}
printf("\n");
}
}
else if (shape_num == 4) {
for (i = 6; i >= 1; i--) {
for (j = 0; j < (6 - i); j++) {
printf(" ");
}
for (j = 0; j < i; j++) {
printf("*");
}
printf("\n");
}
}
else if (shape_num == 5) {
for (i = 1; i <= 6; i++) {
for (j = 0; j < (6 - i); j++) {
printf(" ");
}
for (j = 0; j < (2 * i - 1); j++) {
printf("*");
}
printf("\n");
}
}
else if (shape_num == 6) {
for (i = 6; i >= 1; i--) {
for (j = 0; j < (6 - i); j++) {
printf(" ");
}
for (j = 0; j < (2 * i - 1); j++) {
printf("*");
}
printf("\n");
}
}
else if (shape_num == 7) {
for (i = 1; i <= 3; i++) {
for (j = 0; j < (3 - i); j++) {
printf(" ");
}
for (j = 0; j < (2 * i - 1); j++) {
printf("*");
}
printf("\n");
}
for (i = 3; i >= 1; i--) {
for (j = 0; j < (3 - i); j++) {
printf(" ");
}
for (j = 0; j < (2 * i - 1); j++) {
printf("*");
}
printf("\n");
}
}
else {
printf("1에서 7 사이의 숫자를 입력하세요.\n");
}
return 0;
}
int main() {
int shape_num;
printf("도형 번호 입력 (1 ~ 7): ");
scanf("%d", &shape_num);
draw_shape(shape_num);
return 0;
}
🌟 프로그램 6, 별로 삼각형 만들기
더보기
#include <stdio.h>
int draw_shape(int n) {
int i, j;
for (i = 1; i <= n; i++) {
for (j = 0; j < (n - i); j++) {
printf(" ");
}
for (j = 0; j < (2 * i - 1); j++) {
printf("*");
}
printf("\n");
}
return 0;
}
int main() {
int num;
printf("정수 입력: ");
scanf("%d", &num);
draw_shape(num);
return 0;
}
🌟 프로그램 7, 빈 다이아몬드 만들기
더보기
#include <stdio.h>
int print_diamond_with_x(int num) {
if (num <= 0) {
printf("프로그램을 종료합니다.\n");
return 1; // 종료 신호 반환
}
int n = num;
if (n % 2 == 0) {
n -= 1;
printf("입력값이 짝수이므로 %d으로 조정하여 출력합니다.\n", n);
}
int mid_row = n / 2;
for (int i = 0; i < n; i++) {
int dist = i - mid_row;
if (dist < 0) {
dist = -dist;
}
int x_count = dist;
int space_count = n - 2 * dist;
for (int j = 0; j < x_count; j++) {
printf("X");
}
for (int j = 0; j < space_count; j++) {
printf(" ");
}
for (int j = 0; j < x_count; j++) {
printf("X");
}
printf("\n");
}
return 0;
}
int main() {
int num;
while (1) {
printf("정수를 입력하세요 (0 이하 입력 시 종료): ");
if (scanf("%d", &num) != 1) {
printf("잘못된 입력입니다. 정수를 입력해주세요.\n");
while (getchar() != '\n');
continue;
}
if (print_diamond_with_x(num) == 1) {
break;
}
}
return 0;
}
🌟 프로그램 8, 꽉찬 다이아몬드 만들기
더보기
#include <stdio.h> // 표준 입출력 함수를 사용하기 위해 포함
// 사용자로부터 입력받은 정수를 기준으로 피라미드 형태의 다이아몬드 모양을 출력하는 함수
// 프로그램 종료가 필요하면 1을 반환, 계속 진행하면 0을 반환합니다.
int print_pyramid_diamond(int num) {
// 입력값이 0 이하인 경우 종료 신호를 반환합니다.
if (num <= 0) {
printf("프로그램을 종료합니다.\n");
return 1; // 종료 신호 반환
}
// 입력값이 짝수인 경우 1을 빼서 홀수로 만듭니다.
int n = num;
if (n % 2 == 0) {
n -= 1;
printf("입력값이 짝수이므로 %d으로 조정하여 출력합니다.\n", n);
}
// n이 1보다 작거나 같으면 (조정 후 1이 되면) 그냥 'X' 하나만 출력
if (n <= 1) {
printf("X\n");
return 0;
}
// 중앙 행 인덱스 계산
int mid_row = n / 2;
// 각 행을 순회하며 출력
for (int i = 0; i < n; i++) {
int space_count, x_count;
// 현재 행에 해당하는 공백 및 'X' 개수 계산
if (i <= mid_row) { // 상단 삼각형 및 중앙 행
space_count = mid_row - i;
x_count = 2 * i + 1;
} else { // 하단 삼각형
// 하단 삼각형의 패턴은 상단 삼각형을 뒤집은 것과 같습니다.
// 상단 삼각형의 i번째 행은 하단 삼각형의 (n-1-i)번째 행과 대칭입니다.
space_count = i - mid_row;
x_count = 2 * (n - 1 - i) + 1;
}
// 공백 출력
for (int j = 0; j < space_count; j++) {
printf(" ");
}
// 'X' 출력
for (int j = 0; j < x_count; j++) {
printf("X");
}
// 행의 끝에서 줄 바꿈
printf("\n");
}
return 0; // 계속 진행 신호 반환
}
int main() {
int num;
while (1) { // 무한 루프
printf("정수를 입력하세요 (0 이하 입력 시 종료): ");
// 사용자로부터 정수 입력 받기
if (scanf("%d", &num) != 1) {
// 입력 오류 처리 (정수가 아닌 값 입력 시)
printf("잘못된 입력입니다. 정수를 입력해주세요.\n");
// 입력 버퍼 비우기 (무한 루프 방지)
while (getchar() != '\n');
continue; // 다음 반복으로 넘어감
}
// print_pyramid_diamond 함수를 호출하고 반환 값을 확인합니다.
if (print_pyramid_diamond(num) == 1) {
// 함수에서 1을 반환했으면 (종료 신호) 루프를 종료합니다.
break;
}
}
return 0; // 프로그램 정상 종료
}
🌟 프로그램 9, 나비 넥타이 만들기
더보기
#include <stdio.h>
int print_buterfly(int n) {
if (n <= 0) {
printf("프로그램을 종료합니다.\n");
return 1;
}
int i, j;
int half = n / 2;
for (i = 1; i <= half; i++) {
// 왼쪽 X
for (j = 1; j <= i; j++) {
printf("X");
}
// 가운데 공백
for (j = 1; j <= n - 2 * i; j++) {
printf(" ");
}
// 오른쪽 X
for (j = 1; j <= i; j++) {
printf("X");
}
printf("\n");
}
// 가운데 줄
for (j = 1; j <= n; j++) {
printf("X");
}
printf("\n");
// 아래 대칭 부분
for (i = half; i >= 1; i--) {
// 왼쪽 X
for (j = 1; j <= i; j++) {
printf("X");
}
// 가운데 공백
for (j = 1; j <= n - 2 * i; j++) {
printf(" ");
}
// 오른쪽 X
for (j = 1; j <= i; j++) {
printf("X");
}
printf("\n");
}
return 0;
}
int main() {
int n;
while (1) {
printf("정수를 입력하세요 (0 이하 입력 시 종료): ");
if (scanf("%d", &n) != 1) {
printf("잘못된 입력입니다. 정수를 입력해주세요.\n");
while (getchar() != '\n');
continue;
}
if (print_buterfly(n) == 1) {
break;
}
}
return 0;
}
🌟 프로그램 10, 화살표 만들기
더보기
#include <stdio.h>
int print_buterfly(int n) {
if (n <= 0) {
printf("프로그램을 종료합니다.\n");
return 1;
}
int i, j;
int upper = n / 2;
int lower = n - upper;
for (i = 1; i <= upper; i++) {
for (j = 0; j < upper - i; j++) {
printf(" ");
}
for (j = 0; j < 2 * i - 1; j++) {
printf("* ");
}
printf("\n");
}
int width = 2 * upper - 1;
int padding = (width - (upper + 1)) / 2;
for (i = 0; i < lower; i++) {
for (j = 0; j < padding; j++) {
printf(" ");
}
for (j = 0; j < upper + 1; j++) {
printf("* ");
}
printf("\n");
}
return 0;
}
int main() {
int n;
while (1) {
printf("정수를 입력하세요 (0 이하 입력 시 종료): ");
if (scanf("%d", &n) != 1) {
printf("잘못된 입력입니다. 정수를 입력해주세요.\n");
while (getchar() != '\n');
continue;
}
if (print_buterfly(n) == 1) {
break;
}
}
return 0;
}
🌟 프로그램 11, 트리 만들기
더보기
#include <stdio.h>
int print_tree(int n) {
if (n <= 0) {
printf("프로그램을 종료합니다.\n");
return 1;
}
int i, j, k;
for (i = 1; i <= 3; i++) {
for (j = 1; j <= i + n; j++) {
for (k = 1; k <= ( n + 4) - j; k++) {
printf(" ");
}
for (k = 1; k <= (2 * j - 1); k++) {
printf(" * ");
}
printf("\n");
}
}
for (i = 1; i <= n ; i++) {
for (j = 1; j <= n + 1.5; j++)
printf(" ");
for (j = 1; j <= n+2; j++)
printf(" * ");
printf("\n");
}
return 0;
}
int main() {
int n;
while (1) {
printf("정수를 입력하세요 (0 이하 입력 시 종료): ");
if (scanf("%d", &n) != 1) {
printf("잘못된 입력입니다. 정수를 입력해주세요.\n");
while (getchar() != '\n');
continue;
}
if (print_tree(n) == 1) {
break;
}
}
return 0;
}
🌟 프로그램 12, 튤립 만들기
더보기
// #include <stdio.h>
// int print_windmill() {
// int i, j;
// for (i = 1; i <= 4; i++) {
// for (j = 0; j < (5 - i); j++) {
// printf(" ");
// }
// for (j = 0; j < (2 * i - 1); j++) {
// printf("*");
// }
// printf(" ");
// for (j = 0; j < (5 - i ); j++) {
// printf(" ");
// }
// for (j = 0; j < (2 * i - 1); j++) {
// printf("*");
// }
// printf(" ");
// for (j = 0; j < (5 - i); j++) {
// printf(" ");
// }
// for (j = 0; j < (2 * i - 1); j++) {
// printf("*");
// }
// printf("\n");
// }
// return 0;
// }
// int main() {
// print_windmill();
// return 0;
// }
#include <stdio.h>
int main() {
int i, j;
int height = 4;
for (i = 1; i <= height; i++) {
for (int tri = 0; tri < 3; tri++) {
// 왼쪽 공백
for (j = 0; j < height - i; j++) {
printf(" ");
}
// 별 출력
for (j = 0; j < 2 * i - 1; j++) {
printf("*");
}
// 삼각형 사이 공백 (단, 마지막 삼각형 뒤에는 X)
if (tri < 2) {
for (j = 0; j < height - i + 2; j++) {
printf(" ");
}
}
}
printf("\n");
}
for(i = 1; i <= 26; i++) {
printf("*");
}
printf("\n");
for (i = 11; i >= 1; i--) {
for (j = 0; j < (13 - i); j++) {
printf(" ");
}
for (j = 0; j < (2 * i - 1); j++) {
printf("*");
}
printf("\n");
}
for(i = 1; i <= 14; i++) {
for (j = 0; j < 12; j++) {
printf(" ");
}
printf("*");
printf("\n");
}
return 0;
}
🌟 프로그램 13, 풍차 만들기
더보기
#include <stdio.h>
int print_windmill(int num) {
if (num <= 0) {
printf("프로그램을 종료합니다.\n");
return 1;
}
for (int i = 0; i <= num; i++) {
for (int j = 0; j <= i; j++) {
printf("* ");
}
for (int j = 0; j < num - i; j++) {
printf(" ");
}
for (int j = 0; j <= num - i; j++) {
printf("* ");
}
printf("\n");
}
for (int i = 0; i <= num; i++) {
for (int j = 0; j < (num - i); j++) {
printf(" ");
}
for (int j = 0; j < i; j++) {
printf("* ");
}
for (int j = 0; j < i; j++) {
printf(" ");
}
for (int j = 0; j <= num - i; j++) {
printf("* ");
}
printf("\n");
}
return 0;
}
int main() {
int num;
while (1) {
printf("정수를 입력하세요 (0 이하 입력 시 종료): ");
if (scanf("%d", &num) != 1) {
printf("잘못된 입력입니다. 정수를 입력해주세요.\n");
while (getchar() != '\n');
continue;
}
if (print_windmill(num) == 1) {
break;
}
}
return 0;
}
'C > Task' 카테고리의 다른 글
C언어 간단한 프로그램 2 (0) | 2025.06.21 |
---|---|
C언어 함수 (0) | 2025.06.16 |
C언어 배열 (0) | 2025.06.16 |
C언어 배열 정리 (0) | 2025.06.15 |
06/12 반복구조 (0) | 2025.06.12 |