0210 반복문 조건문 연습문제
문제1
다음 입력과 출력을 하시오
(while문과 if문 적용)
결과화면
숫자를 입력하시오 => 100
100과 같습니다.
숫자를 입력하시오=> 101
100 보다 큽니다.
숫자를 입력하시오 => 99
100보다 작습니다.
숫자를 입력하시오 => 0
프로그램 종료
코드
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void main() {
int input;
while(1)
{
printf("숫자를 입력하시오 : ");
scanf("%d", &input);
if (input == 100){
printf("100과 같습니다\n");
continue;
}
if (input == 0)
break;
if (input > 100){
printf("100보다 큽니다\n");
continue;
}
if (input < 100){
printf("100보다 작습니다\n");
continue;
}
}
}
결과창
문제2
if문을 이용하여 학점프로그램과 switch문을 이용하여 프로그램을 각각 작성하시오
input = 70
(if문) 학점은 C 학점입니다.
(switch문) 학점은 C 입니다.
코드
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void main() {
int score;
printf("(if)점수를 입력하시오");
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 if (score >= 50)
printf("F입니다\n");
printf("(case)점수를 입력하시오");
scanf("%d", &score);
switch (score / 10){
case 10:
printf("학점은A입니다\n");
break;
case 9:
printf("학점은A입니다\n");
break;
case 8:
printf("학점은B입니다\n");
break;
case 7:
printf("학점은C입니다\n");
break;
case 6:
printf("학점은D입니다\n");
break;
default:
printf("학점은F입니다\n");
break;
}
}
결과창
문제3
다음 년도를 입력 받아서 윤년인지 평년인지 판단하시오.
- 4로 나누어 떨어지면 윤년
- 100면으로 나누어 떨어지면 윤년이 아님
- 400으로 나누어 떨어지면 윤년
- 0이 입력되면 종료
결과화면
년도input : 2022
2022년은 평년입니다.
코드
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void main() {
int year;
while (1){
printf("년도를 입력하세요 : ");
scanf("%d", &year);
if (year == 0)
break;
else if ((year % 4 == 0) && !(year % 100 == 0) || (year % 400 == 0))
printf("%d는 윤년입니다\n", year);
else
printf("%d는 평년입니다\n", year);
}
}
문제4
1 부터 100까지 5의 배수 출력
5 10 15 20 25
30 35 40 45 50
55 60 65 70 75
80 85 90 95 100
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void main() {
int a,b;
printf("최대숫자를 입력해주세요");
scanf("%d", &a);
printf("몇의 배수를 구하시겠습니까?");
scanf("%d", &b);
for (int i=1; i <= a/b; i++) {
printf(" %d ", b * i);
}
}
결과창
문제5
문제풀이
1) 작업선택 : 구구단(1), 누적합계(2), 종료(3)
2) 구구단(1) 선택시 입력 받은 단수에 맞는 구구단 출력
3) 누적합계(2) 선택시 1 부터 입력 받은 값까지의 누적합계출력
4) 종료(3) 선택시 프로그램 종료
5) 작업선댁 및 구구단, 누적합계 모두 반복 입력 동작
작업 선택 : 구구단(1), 누적합계(2), 종료(3) = 4
1번에서 3번을 선택하세요!
작업 선택 : 구구단(1), 누적합계(2), 종료(3) = 1
단(2~9)을 입력하세요 = 12
2~9사이를 입력하세요!
단(2~9)을 입력하세요 = 3
3 * 0 = 0
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
다시 하시겠습니까(Y/N) ? = n //구구단을 다시할거냐?
작업 선택 : 구구단(1), 누적합계(2), 종료(3) = 2
누적합계를 원하는 숫자를 입력하시오 = 10
10 까지의 누적 합계는 55 입니다.
다시 하시겠습니까(Y/N) ? = y //누적을 다시할거냐?
누적합계를 원하는 숫자를 입력하시오 = 100
100 까지의 누적 합계는 5050 입니다.
다시 하시겠습니까(Y/N) ? = n// 누적을 다시할거냐?
작업 선택 : 구구단(1), 누적합계(2), 종료(3) = 3
코드
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void main() {
int task, g, num, sum;
char restart;
do {
printf("작업선택 : 구구단(1), 누계(2), 종료(3) = ");
scanf("%d", &task);
switch (task) {
case 1:
while (1) {
printf("단(2~9)를 입력하세요 = ");
scanf("%d", &g);
if ((g > 9) || (g < 1))
{
printf("단(2~9)을 입력하세요!\n");
continue;
}
else
{
for (int i = 0; i <= 9;i++)
printf("%d * %i = %d\n", g, i, g * i);
printf("다시 하시겠습니까(Y/N)? = ");
getchar();
scanf("%c", &restart);
if ((restart == 'y') || (restart == 'Y'))
continue;
else if ((restart == 'n') || (restart == 'N'))
break;
}
}
break;
case 2:
while (1) {
sum = 0;
printf("누적합계를 원하는 숫자를 입력하시오 = ");
scanf("%d", &num);
if (num < 1)
{
printf("2 이상의 숫자를 입력하세요!\n");
continue;
}
else
{
for (int i = 1; i <= num; i++)
sum += i;
printf("%d 까지의 누계는 %d입니다.\n", num, sum);
printf("다시 하시겠습니까(Y/N)? = ");
getchar();
scanf("%c", &restart);
if ((restart == 'y') || (restart == 'Y'))
continue;
else if ((restart == 'n') || (restart == 'N'))
break;
}
}
break;
case 3:
break;
default:
printf("1번에서 3번을 선택하세요!\n");
continue;
}
} while (task != 3);
}
결과창