반응형
while문을 중첩해서 꼭 문제를 풀어보자
문제1
프로그램 사용자로부터 총 5개의 정수를 입력 받아서, 그 수의 합을 출력하는 프로그램을 작성해보자. 단! 한가지 조건이 있다. 정수는 반드시 1이상이어야 한다. 만약에 1미만의 수가 입력되는 경우에는, 이를 입력으로 인정하지 않고 재 입력을 요구해야 한다. 그래서 결국 1이상의 정수를 5개를 모두 입력 받을 수 있도록 프로그램을 완성해야 한다.
#include <stdio.h>
int main()
{
int A = 0,num=1;
int array[5] = { 0 };
while(A < 5)
{
printf("정수를 입력하세요 %d ", A + 1);
scanf_s("%d", &num);
array[A] = num;
while (num == 0)
{
printf("정수를 다시 입력하세요\n");
A--;
break;
}
A++;
}
for (int i = 0; i < 5; i++)
{
printf("num[%d]는 %d ", i + 1, array[i]);
}
return 0;
}
A가 5미만일때까지 반복하는 반복문 while은 정수를 입력 받아 num에 저장하고 array[A]값에 저장한다.
num값을 0을 입력하면 사용하면 "정수를 다시 입력하세요" 출력 / 변수 A의 숫자를 1만큼 줄이고 반복문을 탈출한다.
A를 1더해준다.
for문을 통해 array[0~4]까지 출력
----------------------------------------------------------------------------------------------------------------------------------
문제2
아래의 출력을 보이는 프로그램을 작성해보자
*
o*
oo*
ooo*
oooo*
#include <stdio.h>
int main()
{
int A = 0;
int i = 0;
while(A < 5)
{
while (i < A)
{
printf("o");
i++;
}
i = 0;
printf("*\n");
A++;
}
return 0;
}
A<5이고 i<A일 경우 "o"출력 첫번째 반복문에서는 i==A이기때문에 바로 "*"이 출력된다.
두번째부터 i=0, A=1이기 때문에 "o*"이 출력된다.
두번째 while문 밑에서 i를 0으로 초기화 시켜줘서 A가 커질수록 i를 여러번 반복할수있다.
반응형
'언어공부 > C언어' 카테고리의 다른 글
(열혈 C프로그래밍)for문의 활용 문제 (0) | 2020.12.25 |
---|---|
(열혈 C프로그래밍) while문과 do~while문 예제 (0) | 2020.12.25 |
(열혈C프로그래밍)while 반복문 활용 예제 (0) | 2020.12.24 |
(열혈C프로그래밍)3장 변수와 연산자 (0) | 2020.12.23 |
(열혈 C프로그래밍)프로그램의 기본구성 (0) | 2020.12.23 |