C, C++/3.반복과 조건

0210 반복문 조건문 연습문제

ds97l 2022. 2. 14. 22:22

문제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);
}

 

결과창