chap 11 . 실행 흐름 의 컨트롤 2 편 스코프 : 변수 에 접근 가능 한 영역 int main ( void ) { int num = 1 ; / / 전역 변수 num 선언 if ( num == 1 ) { int num = 20 ; / / if 안 에서 지역 변수 num 선언 num ++; printf ( “ ...% d ” , num ) ; } else { num ++; / / 전역 변수 num ++ printf ( “ ..% d . .”, num ) ; } printf ( “ ...% d ” , num ) ; { int num = 100 ; / / 새로운 num 선언 num ++; printf ( “ 이름 없 는 영역 에서 의 num : % d \ n ” , num ) ; } return 0 ;} while 에 의한 문장 반복 int main ( void ) { int i = 0 ; while ( i < 7 ) { i ++; printf ( “ % d 번 째 hellow world ” ) ; } return 0 ;} 문제 ) while 의 중괄호 없이 사용 하 는 법 연구 . 문제 ) while 문 을 이용 한 무한 루프 의 구성 . 문제 ) 사용 자 로 부 터 계속 해서 정수 를 입력 받 는다 . 0 이 입력 될 때 까지 0 이 입력 되 면 지금 까지 입력 된 정수 들 의 합 을 출력 하 고 프로그램 을 종료 한다 . break 와 continueint main ( void ) { int cnt = 0 ; int n = 0 ; printf ( “ # 2 와 3 의 배수 가 아닌 100 이하 의 자연수 들 # \ n ” ) ; while ( ( n ++) < 100 ) { if ( ! ( n % 2 ) || ! ( n % 3 ) ) continue ; printf ( “ % d , ” , n ) ; cnt ++; } printf ( “ \ n \ n ” ) printf ( “ # 2 와 3 의 배수 가 아닌 100 이하 의 자연수 의 개수 : % d \ n ” , cnt ) ; return 0 } 문제 ) 사용자 로부터 2 개 의 정수 를 입력 받 아서 나눗셈 을 하 는 프로그램 을 작성 하 자 . 두 개 의 정수 를 입력 받 고 나 눗 세 의 결과 를 출력 하 는 일 이 반복 되 어야 한다 . 두 개 의 정수 로 모두 0 이 입력 되 면 프로그램 은 종료 된다 . 정수형 나눗셈 을 진행 한다 . 나눗셈 의 결과 는 몫 과 나머지 로 출력 되 어야 한다 . 나누 는 수 가 0 이 되 면 나눗셈 을 진행 하 지 못하 니 나눗셈 과정 을 생략 하 고 다시 두 개 의 정수 를 입력 받 도록 구현 한다 . do ~ while 에 의한 문장 반복 int main ( void ) { . .. do { n ++; printf ( “ ..”); } while ( n < 10 ) ; . ..} 문제 ) 아래 설명 하 는 특성 을 100 % 만족 하 는 프로그램 을 작성 하 자 . 사용자 로 부 터 계속 해서 정수 를 입력 받 는다 . 0 이 입력 될 때 까지 계속 해서 입력 받 는다 . 0 이 입력 되 면 지금 까지 입력 된 정수 들 의 합 을 출력 하 고 프로그램 을 종료 한다 . for 문 에 의한 문장 반복 for ( 초기 식 ; 조건식 ; 증감 식 ) { 실행 문 } int main ( void ) { int i , j ; i = 0 ; for ( ; ( i ++)< 3 ; ) printf ( “ 조건식 만 존재 \ n ” ) ; for ( i = 0 , j = 0 ; i < j ; i ++, j ++) printf ( “ 콤마 연산자 의 활용 \ n ” ) ; for ( ; ; ) { printf ( “ 두 개 의 정수 입력 : ” ) ; scanf ( “ % d % d , & i , & j ) ; if ( j == 0 ) break ; printf ( “ 몫 : % d , 나머지 : % d \ n ” , i / j , i % j ) ; } printf ( “ for 문 에 대한 연구 끝 \ n ” ) ; return 0 ;} 문제 ) 계승 을 계산 하 는 프로그램 을 작성 하 자 . 사용자 로부터 숫자 하나 를 입력 받 는다 그러면 그 숫자 의 계승 이 출력 되 어야 한다 . 예 를 들 어 5 를 입력 하 면 1 * 2 * 3 * 4 * 5 의 계산 결과 가 출력 되 어야 한다 . 문제 ) 두 개 의 정수 를 받 아 입력 받 은 두 정수 와 그 사이 에 존재 하 는 모든 정수 들 의 합 을 계산 하 는 프로그램 을 작성 하 자 예 를 들 면 3 과 5 가 입력 되 면 3 + 4 + 5 의 계산 결과 가 출력 되 어야 한다 . 단 입력 되 는 숫자 의 순서 에 상관없이 동일 한 결과 가 출력 되 어야 한다 . 즉 3 과 5 가 입력 되 건 5 와 3 이 입력 이 되 건 상관없이 동일 하 게 출력 되 어야 한다 . 반 복문 의 중첩 for 문 의 중첩 int main ( void ) { int i , j ; for ( i = 0 ; i < 3 ; i ++) { printf ( “ *** 바깥쪽 for 문 % d 차 회전 *** \ n ” , i + 1 ) ; for ( j = 0 ; j < 3 ; j ++) printf ( “ 안쪽 의 for 문 % d 차 회전 \ n ” , j + i ) ; printf ( “ \ n ” ) ; } return 0 ;} while 문 의 중첩 int main ( void ) { int i , j ; i = 0 ; while ( i ++< 10 ) { j = 0 ; while ( j ++< 10 ) { printf ( "[ i , j ] = [ % d , % d ] \ n ", i , j ) ; if ( i % 2 == 0 && j % 2 == 0 ) break ; } } printf ( " 충 첩 된 반 복문 완전 탈출 ! "); return 0 ;} 문제 ) 구구단 출력 프로그램 을 구현 하 자 . 단 ! 짝 수단 ( 2 단 은 2 * 2 까지 4 단 은 4 * 4 까지 6 단 은 6 * 6 까지 8 단 은 8 * 8 까지 출력 . 문제 ) 다 음식 을 만족 하 는 모든 A 와 B 의 조합 을 구하 는 프로그램 작성 . 문제 ) 다음 의 프로그램 작성 * * ** ** *** ***