Week 07
Tutoring/18-1 C Lang2018. 5. 5. 17:46
<180502>
- 반복문의 세계..!!
- for 문의 작동 원리
for(초기식; 조건식; 증감식) {
바디
}
1. 초기식
2. 조건식
>> 조건식이 참이면, 바디 - 증감식 후 다시 조건식으로.
>> 조건식이 거짓이면 for 문 종료.
- while 문 vs for 문
반복횟수를 알고 있는경우 for 문을, 얼마나 반복해야 할 지 모르는 경우 while 문을 추천.
- while 문 vs do ~ while 문
>> do ~while() : 바디를 일단 한번 실행 시키고 나서 조건식에 따라 반복여부 결정
>> while() : 조건식에 따라 반복
< 프로그래밍 연습 >
1. 0이 입력되기 전까지 입력된 정수들의 합과 평균 구하기.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include <stdio.h> int main() { int n, sum=0; int count=0; double avg; while(1) { scanf("%d", &n); if(n == 0) break; sum += n; count++; } avg = (double)sum/count; return 0; } | cs |
>> 12 번 줄의 break 문은 가장 가까이에 있는 반복문 하나를 탈출한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #include <stdio.h> int main() { int n, sum=0; int count=0; double avg; do { scanf("%d", &n); sum += n; count++; } while(n != 0); avg = (double)sum/(count-1); return 0; } | cs |
>> do ~ while() 을 이용.
2. 1~10 까지의 합 구하기.
1 2 3 4 5 6 7 8 9 10 | #include <stdio.h> int main() { int i, sum=0; for(i=1; i<=10; i++) sum += i; printf("%d\n", sum); return 0; } | cs |
3. 1~n 까지의 합 구하기
1 2 3 4 5 6 7 8 9 10 11 12 | #include <stdio.h> int main() { int n; int i, sum=0; scanf("%d", &n); for(i=1; i<=n; i++) sum += i; printf("%d\n", sum); return 0; } | cs |
4. 1~n 까지의 수들 중 홀수의 합 구하기.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #include <stdio.h> int main() { int n; int i, sum=0; scanf("%d", &n); for(i=1; i<=n; i++) { if(i%2 == 1) { sum += i; } } printf("%d\n", sum); return 0; } | cs |
5. 'A'~'Z' 까지 출력하기
1 2 3 4 5 6 7 8 9 | #include <stdio.h> int main() { char ch; for(ch='A'; ch<='Z'; ch++) printf("%c\n", ch); return 0; } | cs |
6. 아래의 실행결과가 나오는 프로그래밍
1 2 3 4 5 6 7 8 9 | 1 22 333 4444 55555 666666 7777777 88888888 999999999 | cs |
1 2 3 4 5 6 7 8 9 10 11 12 | #include <stdio.h> int main() { int line, n; for(line=1; line<=9; line++) { for(n=1; n<=line; n++) printf("%d", line); printf("\n"); } return 0; } | cs |
7. 아래의 실행결과가 나오는 프로그래밍
1 2 3 4 5 6 7 8 9 | 1 12 123 1234 12345 123456 1234567 12345678 123456789 | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <stdio.h> int main() { int line, n; for(line=1; line<=9; line++) { for(n=1; n<=line; n++) printf("%d", n); printf("\n"); } return 0; } | cs |
>> 6번과 7번 소스코드가 어떻게 다른지 비교해보기..!!
8. 아래의 실행결과가 나오는 프로그래밍
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 | A AB ABC ABCD ABCDE ABCDEF ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ ABCDEFGHIJK ABCDEFGHIJKL ABCDEFGHIJKLM ABCDEFGHIJKLMN ABCDEFGHIJKLMNO ABCDEFGHIJKLMNOP ABCDEFGHIJKLMNOPQ ABCDEFGHIJKLMNOPQR ABCDEFGHIJKLMNOPQRS ABCDEFGHIJKLMNOPQRST ABCDEFGHIJKLMNOPQRSTU ABCDEFGHIJKLMNOPQRSTUV ABCDEFGHIJKLMNOPQRSTUVW ABCDEFGHIJKLMNOPQRSTUVWX ABCDEFGHIJKLMNOPQRSTUVWXY ABCDEFGHIJKLMNOPQRSTUVWXYZ | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <stdio.h> int main() { char ch, start; for(ch='A'; ch<='Z'; ch++) { for(start='A'; start<=ch; start++) printf("%c", start); printf("\n"); } return 0; } | cs |
9.
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 | ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHIJKLMNOPQRSTUVWXY ABCDEFGHIJKLMNOPQRSTUVWX ABCDEFGHIJKLMNOPQRSTUVW ABCDEFGHIJKLMNOPQRSTUV ABCDEFGHIJKLMNOPQRSTU ABCDEFGHIJKLMNOPQRST ABCDEFGHIJKLMNOPQRS ABCDEFGHIJKLMNOPQR ABCDEFGHIJKLMNOPQ ABCDEFGHIJKLMNOP ABCDEFGHIJKLMNO ABCDEFGHIJKLMN ABCDEFGHIJKLM ABCDEFGHIJKL ABCDEFGHIJK ABCDEFGHIJ ABCDEFGHI ABCDEFGH ABCDEFG ABCDEF ABCDE ABCD ABC AB A | cs |
1 2 3 4 5 6 7 8 9 10 11 12 | #include <stdio.h> int main() { char ch, start; for(ch='Z'; ch>='A'; ch--) { for(start='A'; start<=ch; start++) printf("%c", start); printf("\n"); } return 0; } | cs |
10. 구구단 몇단??
1 2 3 4 5 6 7 8 9 10 | #include <stdio.h> int main() { int i, n; scanf("%d", &n); for(i=1; i<=9; i++) printf("%d * %d = %d\n", n, i, n*i); return 0; } | cs |
11. 기본 별찍기.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #include <stdio.h> int main() { int i, j, n; scanf("%d", &n); for(i=1; i<=n; i++) { for(j=1; j<=i; j++) printf("*"); printf("\n"); } return 0; } | cs |
>> n 이 5일대의 실행결과
*
**
***
****
*****