[C Question] 복습용 반복문
카테고리: c-question-lv1
기초가 튼튼해야 나중에 어려운 문제를 풀 때 무너지지 않는다 !!!
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);
댓글 남기기