
if (조건식) { 실행문; }if (조건식) { 실행문1; } else { 실행문2; }switch (정수식) {
case 값1: 실행문1; break;
case 값2: 실행문2; break;
default: 기본실행문; break;
}for (초기식; 조건식; 증감식) { 실행문; }while (조건식) { 실행문; }while(1) 형태로 구현do {
실행문;
} while (조건식);#include <stdio.h>
int main(void) {
int score;
printf("점수를 입력하세요: ");
scanf("%d", &score);
if (score >= 90) {
printf("A 학점입니다.\n");
} else if (score >= 80) {
printf("B 학점입니다.\n");
} else if (score >= 70) {
printf("C 학점입니다.\n");
} else if (score >= 60) {
printf("D 학점입니다.\n");
} else {
printf("F 학점입니다.\n");
}
return 0;
}
#include <stdio.h>
int main(void) {
int menu;
printf("1.파일 열기\n");
printf("2.파일 저장\n");
printf("3.파일 인쇄\n");
printf("메뉴 선택: ");
scanf("%d", &menu);
switch (menu) {
case 1:
printf("파일 열기를 선택했습니다.\n");
break;
case 2:
printf("파일 저장을 선택했습니다.\n");
break;
case 3:
printf("파일 인쇄를 선택했습니다.\n");
break;
default:
printf("잘못된 메뉴를 선택했습니다.\n");
break;
}
return 0;
}
#include <stdio.h>
int 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");
}
return 0;
}
#include <stdio.h>
int main(void) {
int i = 1;
int sum = 0;
while (i <= 100) {
sum += i;
i++;
}
printf("1부터 100까지의 합: %d\n", sum);
return 0;
}
#include <stdio.h>
int main(void) {
int menu;
do {
printf("1.새 게임\n");
printf("2.불러오기\n");
printf("3.설정\n");
printf("0.종료\n");
printf("메뉴 선택: ");
scanf("%d", &menu);
switch (menu) {
case 1:
printf("새 게임을 시작합니다.\n");
break;
case 2:
printf("저장된 게임을 불러옵니다.\n");
break;
case 3:
printf("설정 메뉴로 이동합니다.\n");
break;
case 0:
printf("게임을 종료합니다.\n");
break;
default:
printf("잘못된 메뉴를 선택했습니다.\n");
}
} while (menu != 0);
return 0;
}
#include <stdio.h>
int main(void) {
int i;
int sum = 0;
for (i = 1; i <= 100; i++) {
sum += i;
if (sum > 1000) {
printf("합계가 1000을 초과했습니다! 현재 i = %d\n", i);
break;
}
}
printf("최종 합계: %d\n", sum);
return 0;
}
#include <stdio.h>
int main(void) {
int i;
int sum = 0;
for (i = 1; i <= 100; i++) {
if (i % 2 == 1) { // 홀수인 경우
continue; // 다음 반복으로 건너뜀
}
sum += i; // 짝수만 더함
}
printf("1부터 100까지의 짝수 합: %d\n", sum);
return 0;
}
신호등의 색깔에 따라 "정지", "주의", "진행" 메시지를 출력하는 프로그램을 작성하시오. 단, 대소문자를 구분하지 않고 처리해야 합니다.
#include <stdio.h>
int main(void) {
char color;
printf("신호등 색깔을 입력하세요(R, Y, G): ");
scanf("%c", &color);
// 대소문자 무관하게 처리
switch (color) {
case 'R':
case 'r':
printf("정지\n");
break;
case 'Y':
case 'y':
printf("주의\n");
break;
case 'G':
case 'g':
printf("진행\n");
break;
default:
printf("잘못된 색깔입니다.\n");
}
return 0;
}
이차방정식 ax² + bx + c = 0의 근을 계산하는 프로그램을 작성하시오. 계수 a, b, c를 입력받아 판별식을 계산하고 실근이 존재하는지 판단한 후, 실근이 존재하면 근을 출력하시오.
#include <stdio.h>
#include <math.h>
int main(void) {
double a, b, c;
double discriminant, root1, root2;
printf("이차방정식의 계수 a, b, c를 입력하세요: ");
scanf("%lf %lf %lf", &a, &b, &c);
// a가 0인 경우 (일차방정식)
if (a == 0) {
if (b == 0) {
printf("방정식이 성립하지 않습니다.\n");
} else {
printf("일차방정식의 근: %lf\n", -c/b);
}
} else {
// 판별식 계산
discriminant = b*b - 4*a*c;
if (discriminant > 0) {
// 서로 다른 두 실근
root1 = (-b + sqrt(discriminant)) / (2*a);
root2 = (-b - sqrt(discriminant)) / (2*a);
printf("서로 다른 두 실근: %lf, %lf\n", root1, root2);
} else if (discriminant == 0) {
// 중근
root1 = -b / (2*a);
printf("중근: %lf\n", root1);
} else {
// 실근이 없는 경우
printf("실근이 존재하지 않습니다.\n");
}
}
return 0;
}
//예제2: 내가한거
int main(void) {
int a = 0;
int b = 0;
int c = 0;
double root1 = 0, root2 = 0;
float geun = 0;
float answer = 0;
printf("계수 a를 입력하시오: ");
scanf("%d", &a);
printf("계수 b를 입력하시오: ");
scanf("%d", &b);
printf("계수 c를 입력하시오: ");
scanf("%d", &c);
if (a == 0){
if (b == 0){
printf("방정식이 성립하지 않습니다.");
}
else {
answer = (-1) * (c / b);
printf("일차방정식의 근 = %.2f", answer);
}
}
else {
geun = b * b - 4 * a * c;
if (geun < 0) {
printf("실근이 존재하지 않습니다.");
}
else {
root1 = (-b + sprt(geun)) / 2*a;
root2 = (-b - sprt(geun)) / 2*a;
printf("위의 이차 방정식의 실근은 %lf과 %lf 입니다.", root1, root2);
}
}
return 0;
}
다음과 같은 삼각형 패턴을 출력하는 프로그램을 작성하시오.
*
**
***
****
*****
#include <stdio.h>
int main(void) {
int i, j;
int height;
printf("삼각형의 높이를 입력하세요: ");
scanf("%d", &height);
for (i = 1; i <= height; i++) {
for (j = 1; j <= i; j++) {
printf("*");
}
printf("\n");
}
return 0;
}
사용자로부터 양의 정수를 입력받아 해당 숫자가 소수인지 판별하는 프로그램을 작성하시오.
#include <stdio.h>
int main(void) {
int num, i;
int isPrime = 1; // 1: 소수, 0: 소수 아님
printf("양의 정수를 입력하세요: ");
scanf("%d", &num);
// 2 미만인 경우 소수가 아님
if (num < 2) {
isPrime = 0;
} else {
// 2부터 num-1까지 나누어 떨어지는지 확인
for (i = 2; i < num; i++) {
if (num % i == 0) {
isPrime = 0;
break; // 소수가 아니면 반복 중단
}
}
}
if (isPrime) {
printf("%d는 소수입니다.\n", num);
} else {
printf("%d는 소수가 아닙니다.\n", num);
}
return 0;
}
사용자로부터 여러 개의 정수를 입력받아 합계를 구하는 프로그램을 작성하시오. 단, 0이 입력되면 입력을 중단하고 합계를 출력하시오.
#include <stdio.h>
int main(void) {
int num;
int sum = 0;
printf("정수들을 입력하세요 (0 입력 시 종료): \n");
while (1) {
scanf("%d", &num);
if (num == 0) {
break; // 0이 입력되면 반복 종료
}
sum += num;
}
printf("입력된 정수들의 합: %d\n", sum);
return 0;
}
사용자로부터 시작 단과 끝 단을 입력받아, 해당 범위의 구구단을 출력하는 프로그램을 작성하시오.
#include <stdio.h>
int main(void) {
int start, end;
int i, j;
printf("시작 단: ");
scanf("%d", &start);
printf("끝 단: ");
scanf("%d", &end);
// 입력 검증
if (start > end) {
printf("시작 단이 끝 단보다 클 수 없습니다.\n");
return 1; // 오류 코드 반환
}
for (i = start; i <= end; i++) {
printf("== %d단 ==\n", i);
for (j = 1; j <= 9; j++) {
printf("%d * %d = %d\n", i, j, i * j);
}
printf("\n");
}
return 0;
}
사용자로부터 정수 n을 입력받아 n행의 다이아몬드 패턴을 출력하는 프로그램을 작성하시오. (n은 홀수로 제한)
#include <stdio.h>
int main(void) {
int n, i, j;
printf("홀수를 입력하세요: ");
scanf("%d", &n);
// n이 홀수인지 확인
if (n % 2 == 0) {
printf("홀수를 입력해야 합니다.\n");
return 1;
}
// 상단부 (삼각형)
for (i = 0; i < n/2 + 1; i++) {
// 공백 출력
for (j = 0; j < n/2 - i; j++) {
printf(" ");
}
// 별표 출력
for (j = 0; j < 2*i + 1; j++) {
printf("*");
}
printf("\n");
}
// 하단부 (역삼각형)
for (i = 0; i < n/2; i++) {
// 공백 출력
for (j = 0; j < i + 1; j++) {
printf(" ");
}
// 별표 출력
for (j = 0; j < n - 2*(i + 1); j++) {
printf("*");
}
printf("\n");
}
return 0;
}
무한 루프를 이용하여 두 수와 연산자를 입력받아 계산하는 프로그램을 작성하시오. 연산자로 'q'가 입력되면 프로그램을 종료하시오.
#include <stdio.h>
int main(void) {
double num1, num2, result;
char op;
while (1) {
printf("계산식을 입력하세요 (예: 5 + 3, 종료는 q): ");
// 연산자 먼저 확인
if (scanf("%lf %c %lf", &num1, &op, &num2) != 3) {
scanf("%c", &op); // 버퍼에서 문자 하나 읽기
if (op == 'q' || op == 'Q') {
printf("계산기를 종료합니다.\n");
break;
} else {
printf("올바른 형식이 아닙니다. 다시 입력하세요.\n");
// 입력 버퍼 비우기
while (getchar() != '\n');
continue;
}
}
switch (op) {
case '+':
result = num1 + num2;
printf("%.2lf + %.2lf = %.2lf\n", num1, num2, result);
break;
case '-':
result = num1 - num2;
printf("%.2lf - %.2lf = %.2lf\n", num1, num2, result);
break;
case '*':
result = num1 * num2;
printf("%.2lf * %.2lf = %.2lf\n", num1, num2, result);
break;
case '/':
if (num2 == 0) {
printf("0으로 나눌 수 없습니다.\n");
} else {
result = num1 / num2;
printf("%.2lf / %.2lf = %.2lf\n", num1, num2, result);
}
break;
default:
printf("지원하지 않는 연산자입니다.\n");
}
// 입력 버퍼 비우기
while (getchar() != '\n');
}
return 0;
}
두 양의 정수를 입력받아 유클리드 알고리즘을 이용하여 최대공약수를 구하는 프로그램을 작성하시오.
#include <stdio.h>
int main(void) {
int a, b, temp;
int original_a, original_b;
printf("두 양의 정수를 입력하세요: ");
scanf("%d %d", &a, &b);
// 원본 값 저장
original_a = a;
original_b = b;
// 유클리드 알고리즘으로 최대공약수 계산
while (b != 0) {
temp = b;
b = a % b;
a = temp;
}
printf("%d와 %d의 최대공약수: %d\n", original_a, original_b, a);
return 0;
}