[C Question] 복습용 반복문

Date:     Updated:

카테고리:

태그:

기초가 튼튼해야 나중에 어려운 문제를 풀 때 무너지지 않는다 !!!

1. 기초 반복문

1-1. 양의 정수를 하나 입력 받고 그 수만큼 Hello you! 출력

조건 ( 버릇 고치기 )
1. 반복문 안에 내용이 한 줄이면 중괄호{} 금지
2. 웬만하면 <= 금지
3. index 1부터 출발 금지
4. 에러 발생시 최상단부터 해결하기

조건 ( 문제 난이도 )
1. for문 사용 금지, while문 사용
정답
while (n-- > 0) 
	printf("%d: Hello you! \n", i++);

1-2. 사용자로부터 정수를 계속!! 입력 받아 값을 계속 더해 나가다가 0을 입력하면 모든 정수의 합을 출력하고 종료

조건 ( 난이도 )
1. if 금지
2. while(1) 식의 무한루프 금지
정답
int sum = 0, num = 1; // 초기식
// 간결하게 !!
while (num != 0) // 조건식
	{
	  printf("input number(0 to quit): ");
		scanf_s("%d", &num); // 증감식
		sum += num; // 복합대입연산자
	}
	printf("sum: %d \n", sum);

1-3. 사용자가 입력받은 숫자의 구구단 출력 !

조건
1. 중첩 당연히 금지 ( 필요가 없음 )
정답
int i = 0, j = 10;
printf("input:");
scanf_s("%d", &i);
while (j-- > 1) printf("%d x %d = %d \n", i, j, i * j);

1-4. 사용자로부터 입력 받은 정수의 평균 출력 !

조건
1. if, break, for x
2. 변수 선언할 때 float, double 금지 ( 의도 파악해보자 )
3. while 사용 ( for 금지 )
4. 평균은 소수점 2자리까지
정답
int i = 0, cnt = 0, num = 0, sum = 0;

printf("How many inputs?:");
scanf_s("%d", &cnt);

while (i++ < cnt)
{
	printf("input number:");
	scanf_s("%d", &num);
	sum += num;
}
printf("avg: %.2f \n", (float)sum/cnt);

1-5. while 사용 2단 ~ 9단 출력

조건
1. while문 사용
2. if 금지
3. 변수명 의미 부여
정답
int dan = 1, mul = 0;

while (dan++ < 9)
{
	printf("----%d단----\n", dan);
	while (mul++ < 9) printf("%d x %d = %d \n", dan, mul, dan * mul);
	mul = 0;
}

1-6 5개의 정수를 입력 받아서 합을 구하되, 1미만이면 입력으로 치지않고 재입력을 요구 ! ( 이거 진짜 재밌음 )

조건
1. if 금지
2. break 금지
3. scanf_s 두번 금지
정답
	int cnt = 0, input = -1, total = 0;

	while (cnt++ < 5)
	{
		// 음수일 때 들어가서
		// 양수일 때 나와서 결과 입력해줘버리면?
		while (input < 0)
		{
			printf("input: ");
			scanf_s("%d", &input);
		}

		total += input;
		input = -1;
	}
	printf("sum: %d", total);

c-question-lv1 카테고리 내 다른 글 보러가기

댓글 남기기