While문의 활용
문제 1)
프로그램 사용자로부터 양의 정수를 하나 입력 받아서, 그 수만큼 "Hello world!"를 출력하는 프로그램을 작성해보자.
#include <stdio.h>
int main(void) {
int n, i = 0;
printf("양의 정수를 입력하세요 : ");
scanf_s("%d", &n);
while (i < n) {
printf("Hello world!\n");
i++;
}
return 0;
}
문제 2)
프로그램 사용자로부터 양의 정수를 하나 입력 받은 다음, 그 수만큼 3의 배수를 출력하는 프로그램을 작성해보자. 예를 들어서 5를 입력 받았다면, 3, 6, 9, 12, 15를 출력해야 한다.
#include <stdio.h>
int main(void) {
int n, i = 1;
scanf_s("%d", &n);
while (i <= n) {
printf("%d ", i * 3);
i++;
}
return 0;
}
< 책 답안 - 후위증가를 이용하여 >
#include <stdio.h>
int main(void) {
int num = 0, cnt = 0;
printf("배수의 개수 : ");
scanf_s("%d", &num);
while (cnt++ < num)
printf("%d ", 3 * cnt);
return 0;
}
문제 3)
프로그램 사용자로부터 계속해서 정수를 입력 받는다. 그리고 그 값을 계속해서 더해 나간다. 이러한 작업은 프로그램 사용자가 0을 입력할 때까지 계속되어야 하며, 0이 입력되면 입력된 모든 정수의 합을 출력하고 프로그램을 종료시킨다.
#include <stdio.h>
int main(void) {
int sum = 0;
while (1) {
int n;
scanf_s("%d", &n);
sum += n;
if (n == 0)
break;
}
printf("%d", sum);
return 0;
}
< 책 답안 >
#include <stdio.h>
int main(void) {
int total = 0;
int num = 1;
while (num != 0) {
printf("정수 입력(0 to quit) : ");
scanf_s("%d", &num);
total += num;
}
printf("입력된 정수의 총 합 : %d \n", total);
return 0;
}
※ 참고
n을 사용자로부터 입력 받고 'n이 0이 아니라면'이라는 반복문을 쓸 때는 n을 1로 초기화시키면 된다.
문제 4)
프로그램 사용자로부터 입력 받은 숫자에 해당하는 구구단을 출력하되, 역순으로 출력하는 프로그램을 작성해보자.
#include <stdio.h>
int main(void) {
int n, i = 9;
scanf_s("%d", &n);
while (i >= 1) {
printf("%d * %d = %d\n", n, i, n * i);
i--;
}
return 0;
}
문제 5)
프로그램 사용자로부터 입력 받은 정수의 평균을 출력하는 프로그램을 작성하되 다음 두 가지 조건을 만족시켜야 한다.
"먼저 몇 개의 정수를 입력할 것인지 프로그램 사용자에게 묻는다. 그리고 그 수만큼 정수를 입력 받는다."
"평균 값은 소수점 이하까지 출력한다."
#include <stdio.h>
int main(void) {
int n;
int i = 0;
int num;
double sum = 0, avg = 0;
printf("몇 개의 정수를 입력하실건가요? : ");
scanf_s("%d", &n);
printf("%d개의 정수를 입력해주세요. : ", n);
while (i < n) {
scanf_s("%d", &num);
i++;
sum += num;
}
avg = (double)sum / n;
printf("\n이 값들의 평균은 %f입니다.", avg);
return 0;
}
'Algorithm 문제 풀이 > C' 카테고리의 다른 글
[C언어] 백준 2231번 (0) | 2022.05.16 |
---|---|
윤성우의 열혈 C 프로그래밍 문제 풀이 Chapter 5 (0) | 2021.08.25 |