티스토리 뷰
jungol > 문제 > Langauge_Corder > 반복제어문1 - 자가진단 1~3
자가진단 1
드이어 반복제어문 이다.
반복제어문은 말 그대로 특정 부분을 반복시키고 제어하는 것을 의미한다.
- 문제 조건
1부터 15까지 출력
a를 정수형 및 1로 초기화 했다.
7) while(a <=15) {
8) printf("%d\n", a);
9) a++;
10) }
그다음 while() 안에서 a를 출력 후, a값을 1 늘렸다.
이를 a <=15까지, 즉 a가 16이 되면 반복문이 종료되도록 만들었다.
1부터 15까지 잘 출력됐다.
자가진단 2
- 문제 조건
입력된 수에서 1까지의 정수의 합 출력
푸는 방식은 매우 다양하나, 나는 코딩 왕초보이므로,
무식하게 했다!
a로 입력값을 받고, 자연수들의 합은 sum에다가 넣었다.
8) while(a>0) {
9) sum += a;
10) a--;
11) }
while에서 sum = sum + a로, 값을 누적하되 (sum += a) a의 값을 1씩 줄여서 입력 값 이하의 수를 하나하나씩 누적시켰다.
ex) a = 5
(a>0)을 만족 (5>0) -> true
while 작동
sum = sum + a;
-> sum = 0 + 5;
-> sum = 5
a--;
-> a=4
(a>0) -> a=4 -> true
while 작동
sum = sum+a;
-> sum = 5+4;
-> sum = 9
a--;
-> a=3
…… 반복!
a--;
-> a=0
(a>0)
-> false
while 작동 안 함!
sum 출력!
15
이런 식으로 작동한다!
여러 번 실행했을 때의 결과다!
자가진단 3
- 문제 조건
조건 1 : 입력받은 수가 양수면
positive integer을 출력
조건 2 : 입력받은 수가 음수면
negative number을 출력
조건 3 : 0일 경우 while 종료
5) int a = 1;
//입력값을 받을 a을 1로 초기화했다.
a를 1로 초기화 한 이유는
while의 조건이 a가 0이 아닐 경우가 참이기 때문에
1로 초기화를 하여 while문 실행이 불가함을 방지했다.
7) while(a!=0) {
//조건 3 입력값이 0 이면 a!=0의 값은 false가 되므로
while문은 종료된다!
10) if(a>0) printf("positive integer\n");
//조건 1
11) else if(a <0) printf("negative number\n");
//조건 2
잘 나온다. (0 입력 시 바로 프로그램이 종료됐다)
코드
자가진단 1
#include <stdio.h>
int main(void)
{
int a = 1;
while(a <=15) {
printf("%d\n", a);
a++;
}
return 0;
}
자가진단 2
#include <stdio.h>
int main(void)
{
int a = 0; int sum = 0;
scanf("%d", &a);
while(a>0) {
sum += a;
a--;
}
printf("%d", sum);
return 0;
}
자가진단 3
#include <stdio.h>
int main(void)
{
int a = 1;
while(a!=0) {
printf("number");
scanf("%d", &a);
if(a>0) printf("positive integer\n");
else if(a <0) printf("negative number");
}
return 0;
}
'c언어 > jungol' 카테고리의 다른 글
c언어 선택제어문 형성평가 1~5 (jungol) (0) | 2022.02.26 |
---|---|
c언어 선택제어문 자가진단 7~9 (jungol) (0) | 2022.02.23 |
c언어 선택제어문 자가진단 5~6 (jungol) (0) | 2022.02.21 |
c언어 선택제어문 자가진단 1~4 (jungol) (0) | 2022.02.20 |
c언어 디버깅 형성평가 3~4 (jungol) (0) | 2022.02.19 |
- Total
- Today
- Yesterday
- java
- BFS
- 6198
- Krustal
- 최소 스패닝 트리
- 6198번
- 1835번
- union
- 덱
- 트리
- 세그먼트 트리
- 정렬
- 백준
- 카드
- 오프라인 쿼리
- find
- 플로이드
- C언어
- 누적합
- 그래프
- 그리디
- 최대공약수
- 스택
- DFS
- DP
- Mo.s
- 16120번
- 1835
- 누적 합
- C++
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |