기본 출력 작업
아스키 아트를 활용한 간단한 캐릭터 출력을 수행하는 코드입니다. 아래 프로그램은 사람 모양을 텍스트로 표현합니다.
#include <stdio.h>
int main() {
printf(" O \n");
printf("<H>\n");
printf("I I\n");
getchar();
return 0;
}
동일한 패턴을 세로로 두 번 반복하거나, 가로 방향으로 복제하여 다중 캐릭터를 출력할 수 있습니다. 예를 들어, 두 개의 인물을 나란히 배치하려면 다음과 같이 수정합니다.
#include <stdio.h>
int main() {
printf(" O O \n");
printf("<H> <H> \n");
printf("I I I I \n");
getchar();
return 0;
}
삼각형 조건 판별 프로그램
세 변의 길이를 입력받아 삼각형을 구성할 수 있는지 여부를 판단하는 로직을 구현합니다. 삼각형 성립 조건은 임의의 두 변의 합이 나머지 한 변보다 커야 한다는 것입니다.
#include <stdio.h>
int main() {
double side1, side2, side3;
scanf("%lf %lf %lf", &side1, &side2, &side3);
if (side1 + side2 > side3 &&
side1 + side3 > side2 &&
side2 + side3 > side1) {
printf("삼각형을 구성할 수 있습니다.\n");
} else {
printf("삼각형을 구성할 수 없습니다.\n");
}
return 0;
}
사용자 입력 기반 피드백 시스템
학습 습관에 대한 사용자 응답을 받아 적절한 피드백을 제공하는 간단한 대화형 프로그램입니다. 문자 입력 후 버퍼에 남은 개행 문자를 처리하기 위해 추가적인 getchar() 호출이 필요합니다.
#include <stdio.h>
int main() {
char prep, practice;
printf("수업 전 예습 및 복습을 했습니까? (y/n): ");
prep = getchar();
getchar(); // 개행 문자 제거
printf("실제로 코드를 작성해 보셨습니까? (y/n): ");
practice = getchar();
if ((prep == 'y' || prep == 'Y') && (practice == 'y' || practice == 'Y')) {
printf("꾸준한 노력이 중요합니다. 계속 유지하세요!\n");
} else {
printf("지금부터 시작해도 늦지 않았습니다. 함께 시작해 봅시다.\n");
}
return 0;
}
입력 형식 지정 실습
서로 다른 데이터 타입(int, double 등)을 특정 형식으로 입력받고 출력하는 방법을 연습합니다. 실수 입력 시 쉼표로 구분된 값을 올바르게 처리해야 하며, 이 경우 포맷 지정자에 쉼표를 포함해야 합니다.
#include <stdio.h>
int main() {
int a, b, c;
double x, y;
scanf("%d %d %d", &a, &b, &c);
printf("정수 값: a=%d, b=%d, c=%d\n", a, b, c);
scanf("%lf,%lf", &x, &y);
printf("실수 값: x=%.6f, y=%.6f\n", x, y);
return 0;
}
초 단위 시간을 년 단위로 변환
10억 초가 약 몇 년에 해당하는지를 계산하는 프로그램입니다. 1년은 365일을 기준으로 환산하며, 정수형 나눗셈과 반올림을 고려합니다.
#include <stdio.h>
int main() {
long seconds_per_year = 365L * 24 * 60 * 60;
int total_seconds = 1000000000;
int years = (int)((double)total_seconds / seconds_per_year + 0.5);
printf("10억 초는 약 %d년입니다.\n", years);
return 0;
}
거듭제곱 계산기
입력된 실수 값의 365제곱을 계산하여 출력합니다. math.h 헤더의 pow() 함수를 활용하며, 여러 번의 입력을 처리할 수 있도록 루프를 적용할 수 있습니다.
#include <stdio.h>
#include <math.h>
int main() {
double base, result;
while (scanf("%lf", &base) != EOF) {
result = pow(base, 365);
printf("%.2f의 365제곱: %.2e\n", base, result);
}
return 0;
}
섭씨-화씨 온도 변환기
섭씨 온도를 입력받아 화씨로 변환하는 반복형 프로그램입니다. 변환 공식은 F = C × 9/5 + 32 입니다.
#include <stdio.h>
int main() {
float celsius, fahrenheit;
while (scanf("%f", &celsius) != EOF) {
fahrenheit = celsius * 9.0 / 5.0 + 32;
printf("%.2f°C = %.2f°F\n", celsius, fahrenheit);
}
return 0;
}
헤론의 공식을 이용한 삼각형 면적 계산
세 변의 길이를 입력받아 헤론의 공식을 사용해 삼각형의 면적을 계산합니다. 먼저 반둘레를 구한 후, √[s(s-a)(s-b)(s-c)]를 계산합니다.
#include <stdio.h>
#include <math.h>
int main() {
float a, b, c, s, area;
while (scanf("%f %f %f", &a, &b, &c) != EOF) {
s = (a + b + c) / 2.0;
area = sqrt(s * (s - a) * (s - b) * (s - c));
printf("삼각형의 면적: %.2f\n", area);
}
return 0;
}