쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express.

Slides:



Advertisements
Similar presentations
제6장 조건문.
Advertisements

슬라이드 1~21까지는 각자 복습! 슬라이드 22부터는 수업시간에 복습
배열, 포인터 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express.
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express.
반복문 컴퓨터시뮬레이션학과 2014년 봄학기 담당교수 : 이형원 E304호,
제7장 반복문 C Express.
쉽게 풀어쓴 C언어 Express 제8장 함수 C Express.
쉽게 풀어쓴 C언어 Express 제8장 함수 C Express.
C 6장. 함수 #include <stdio.h> int main(void) { int num;
제3장 추가 실습 3장 관련 C 언어 프로그래밍 실습.
쉽게 풀어쓴 C언어 Express 제8장 함수 C Express Slide 1 (of 26)
C 11장. 포인터의 활용 #include <stdio.h> int main(void) { int num;
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
제5장 제어명령
처음으로 배우는 C 프로그래밍 제2부 기초 제5장 반복문.
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
6장. printf와 scanf 함수에 대한 고찰
누구나 즐기는 C언어 콘서트 제4장 수식과 연산자.
7. while 문의 흐름 제어.
연산자 대입 연산자 산술 연산자 관계 연산자 논리 연산자 비트 연산자 콤마 연산자 축약 연산자 sizeof 연산자
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express.
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express.
쉽게 풀어쓴 C언어 Express 제17장 동적 메모리와 연결 리스트 C Express.
동적메모리와 연결리스트 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
C언어 콘서트 제6장 반복문.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
기초C언어 제3주 C프로그램 구성요소, 변수와 자료형 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
컴퓨터 프로그래밍 기초 - 2nd : scanf(), printf() 와 연산자 -
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
7장 배열 배열의 정의 배열의 초기화 1차원 배열 2차원 및 다차원 배열 문자 배열 배열과 구조.
Chapter 06. 선택문.
C언어 프로그래밍의 이해 Ch05. 명령문 Phylogenetic: 계통, 발생(학)의.
쉽게 풀어쓴 C언어 Express 제10장 배열 C Express.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
4장 제어문 선택문: if 문, if – else 문, switch 문
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express Slide 1 (of 27)
2장 표준 입출력 표준 입출력 함수의 종류 형식화된 입출력 문자 입출력 문자열 입출력.
개정판 누구나 즐기는 C언어 콘서트 제6장 반복문 출처: pixabay.
11장. 1차원 배열 IT응용시스템공학과 김 형 진 교수.
제2장 제어구조와 배열 if-else 문에 대하여 학습한다. 중첩 if-else 문에 대하여 학습한다.
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express.
컴퓨터 프로그래밍 기초 - 4th : 수식과 연산자 -
함수와 변수 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
제어문 & 반복문 C스터디 2주차.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
컴퓨터 프로그램 제2,3장 간단한 C 프로그램 김 문 기.
Chapter 11. 배열과 포인터.
실습과제 1(조건문, ) 표준입력으로 수축기 혈압을 입력 받아 그에 따른 적당한 표현을 화면에 출력하는 프로그램을 if-else 문을 이용하여 작성.
#1 배열 활용 #include int main(void) { int i; int grade[5]; grade[0] = 10; grade[1] = 20; grade[2] = 30; grade[3] = 40; grade[4] = 50; for(i=0;i.
6장 반복제어문 for 문 while 문 do while 문 기타 제어문.
누구나 즐기는 C언어 콘서트 제2장 기초 사항 IT응용시스템공학과 김형진 교수.
C언어 프로그래밍의 이해 Ch05. 명령문.
-Part1- 제7장 반복문이란 무엇인가.
-Part1- 제8장 조건문이란 무엇인가 (교재 199페이지 ~ 224페이지)
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express Slide 1 (of 25)
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express Slide 1 (of 28)
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
반복문의 기능 반복문 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 while문
3주차: Control Flow and Others
어서와 C언어는 처음이지 제16장.
어서와 C언어는 처음이지 제23장.
개정판 누구나 즐기는 C언어 콘서트 제11장 구조체, 공용체, 열거형 출처: pixabay.
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
C.
Chapter 09. 배열.
어서와 C언어는 처음이지 제22장.
Presentation transcript:

쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express

이번 장에서 학습할 내용 반복의 개념 이해 while 반복문 do-while 반복문 for 반복문 반복 구조는 일련의 처리를 반복할 수 있게 한다. 반복의 개념을 먼저 이해하고 C에서 제공되는 3가지의 반복 구조에 대하여 학습한다. 반복의 개념 이해 while 반복문 do-while 반복문 for 반복문 break와 continue문

반복문 Q) 반복 구조는 왜 필요한가? A) 같은 처리 과정을 되풀이하는 것이 필요하기 때문이다. 학생 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 한다.

프로그램의 흐름을 제어하는 방법 1) 순차구조 2) 선택구조 3) 반복구조 - 차례대로 실행 - 조건을 검사하여 여러 개 의 실행 경로 중에서 하나를 선택 3) 반복구조 - 조건이 만족될 때가지 반복 NO YES

마일을 미터로 바꾸는 프로그램 #include <stdio.h> int main(void) { int meter;                 meter = 0 * 1609;         printf("0 마일은 %d미터입니다\n", meter);         meter = 1 * 1609;         printf("1 마일은 %d미터입니다\n", meter);         meter = 2 * 1609;         printf("2 마일은 %d미터입니다\n", meter); return 0; } 같은 처리과정 #1 같은 처리과정 #2 같은 처리과정 #3

반복문의 종류

while 문의 구조 주어진 조건이 만족되는 동안 문장들을 반복 실행한다. 초기식; while (조건식) { 문장; 증감식;        문장; 증감식; } ① 초기식을 실행한다. ② 반복 조건을 나타내는 조건식을 계산한다. ③ 수식의 값이 거짓이면 while 문의 실행이 종료된다. ④ 수식의 값이 참이면 문장이 실행된다. ⑤ 증감식을 실행하고 ②로 돌아간다. while ( 초기식 ; 조건식 증감식 ) { 반복하고자 하는 문장들 }

if 문과 while 문의 비교 if( 조건 ) { ... } while( 조건 ) { ... 조건이 만족되면 한번만 실행된다. 조건이 만족되면 여러 번 반복 실행된다.

i 값이 3으로 증가하였지만 조건에 만족 하지 않아 예제 #include <stdio.h> int main(void) {         int meter=0;         int i = 0;                  while(i < 3)         {                 meter = i * 1609;                 printf("%d 마일은 %d 미터입니다\n", i, meter);                 i++; // i = i+1 과 동일         }         return 0; } 0마일은 0미터 입니다. 1마일은 1609미터 입니다. 3 2 1 2마일은 1609미터 입니다. < 3 i * 1609 = 1609 3218 meter i 값이 3으로 증가하였지만 조건에 만족 하지 않아 출력하지 못하고 프로그램을 종료한다.

예제 2 9 5 4 1 3 2 * n i . . . // while 문을 이용한 구구단 출력 프로그램 #include <stdio.h> int main(void) {         int n;         int i = 1;         printf("출력하고 싶은 단: ");         scanf("%d", &n);         while (i <= 9)         {                 printf("%d*%d = %d \n", n, i, n*i);                 i++; // i = i+1 과 동일         }                          return 0; } 2 9 5 4 1 3 2 n * i 출력하고 싶은 단: 2 2*1=2 2*2=4 2*3=6 2*4=8 2*5=10 . . . 2*9=18

예제 10 2 3 4 1 5 n . . . // while 문을 이용한 제곱값 출력 프로그램 #include <stdio.h> int main(void) {         int n;         printf("====================\n");         printf("   n       n의 제곱 \n");         n = 1;         while (n <= 10)         {                 printf("%5d    %5d\n", n, n*n);                 n++; // n= n+1 과 동일         }                          return 0; } 10 2 3 4 1 5 n ====================    n       n의 제곱 1 1 2 4 3 9 4 16 5 25 . . . 10 100

예제 1부터 n까지의 합을 계산하는 프로그램 n이 무엇이 될지 모르는 경우라면 다음과 같이 계산 ... ①빈통을 준비한다. ②통에 1부터 n까지를 넣는다. ③통에 들어 있는 동전의 개수를 출력한다.

예제 6 1 3 1 3 2 3 i n sum #include <stdio.h> int main(void) {         int i, n, sum;  // 변수 선언                  printf("정수를 입력하시오:");          scanf("%d", &n);                     i = 1; // 변수 초기화         sum = 0;         while(i <= n)         {                 sum += i; sum = sum + i 와 동일                 i++; // i = i + 1 와 동일         }         printf("1부터 %d까지의 합은 %d입니다\n", n, sum);         return 0; } 6 1 3 1 3 2 sum i 3 n 정수를 입력하시오:3 1부터 3까지의 합은 6입니다

예제 1 2 3 10 30 60 30 10 20 i n sum // while 문을 이용한 합계 프로그램 #include <stdio.h> int main(void) {         int i, n, sum;   i = 0;                          // 변수 초기화        sum = 0;                     // 변수 초기화          while (i < 3)           {                 printf("값을 입력하시오: ");                 scanf("%d", &n);                 sum = sum + n;  // sum += n;과 같다.                 i++;          }           printf("합계는 %d입니다.\n", sum);                  return 0; } 1 2 3 10 30 60 30 10 20 i sum n 값을 입력하시오 : 10 값을 입력하시오 : 20 값을 입력하시오 : 30 합계는 60입니다.

예제: 최대값 #include <stdio.h> #include <limits.h> int main(void) { int number, min_value = INT_MAX; printf("정수를 입력하시오\n종료는 Ctrl+z\n"); while(scanf("%d", &number) != EOF) if( number < min_value ) min_value = number; } printf("최소값은 %d“, min_value); return 0; 정수를 입력하시오 종료는 Ctrl+z 10 20 30 5 ^Z 최소값은 5

예제 두수의 최대 공약수 구하기 유클리드 알고리즘 ① 두 수 가운데 큰 수를 x, 작은 수를 y라 한다. ② y가 0이면 공약수는 x와 같다. ③ r ← x % y ④ x ← y ⑤ y ← r ⑥ 단계 ②로 되돌아간다.

예제 12 8 4 x y = r % 나머지 // while 문을 이용한 최대 공약수 구하기 프로그램 #include <stdio.h> int main(void) {         int x, y, r;         printf("두 정수를 입력 (큰 수, 작은 수): ");         scanf("%d%d", &x, &y);         while (y != 0)         {                 r = x % y;                 x = y;                 y = r;         }         printf("최대 공약수는 %d입니다.\n", x);                          return 0; } 12 8 x % y = 4 r 나머지 두 정수를 입력 (큰 수,작은 수): 12 8 최대공약수는 4입니다.

while 문에서 주의할 점 변수가 증가 아니라 감소 반복 루프에 포함되어 있지 않다. 조건뒤에 ;이 있음 int i = 1; {         printf("반복중입니다\n"):         i--; } 변수가 증가 아니라 감소 int i = 0; while(i < 3)         printf("반복중입니다\n"):         i++;           . 반복 루프에 포함되어 있지 않다. int i = 0; while(i < 3) ; {         printf("반복중입니다\n"):         i++;           . } 조건뒤에 ;이 있음

참과 거짓 #include <stdio.h> int main(void) { int i = 3; while (i) printf("%d은 참입니다.", i); i--; } printf("%d은 거짓입니다.", i); 3은 참입니다. 2은 참입니다. 1은 참입니다. 0은 거짓입니다.

do...while문 반복 조건을 루프의 끝에서 검사 초기식; do {        문장; 증감식; } while (조건식); 주의!

do-while 문 적어도 한번은 반복문장을 실행한다. 문장 조건 참 거짓 초기식; do { 문장; 증감식;        문장; 증감식; } while (조건식); 문장 참 조건 거짓

while 루프와 do-while 루프와의 관계 ; 초기식 ; 초기식 while ( 조건식 ) do { { 문장1 ; 문장1 ; 문장2 ; 문장2 ... ... ; 증감식 ; 증감식 } while ( 조건식 ) ; }

예제 1 i // do..while 문을 이용한 메뉴 #include <stdio.h> int main(void) {         int i = 0;         do         {                 printf("1---새로 만들기\n");                 printf("2---파일 열기\n");                 printf("3---파일 닫기\n");                 printf("하나를 선택 하시오:\n");                 scanf("%d", &i);         } while(i < 1 || i > 3);                  printf("선택된 메뉴=%d\n",i);         return 0; } 1 i 1---새로 만들기 2---파일 열기 3---파일 닫기 하나를 선택 하시오: 1 선택된 메뉴=1

for 루프 정해진 횟수만큼 반복하는 구조

for 문의 구조 for ( 초기식; 조건식; 증감식) 문장; ① 초기식을 실행한다.       문장; ① 초기식을 실행한다. ② 반복 조건을 나타내는 조건식을 계산한다. ③ 수식의 값이 거짓이면 for 문의 실행이 종료된다. ④ 수식의 값이 참이면 문장이 실행된다. ⑤ 증감식을 실행하고 ②로 돌아간다.

for 문의 구조 int i; for(i = 0; i < 10; i++)         printf("Hello World!\n");

for문의 실행과정

for문의 실행과정 int i; for(i = 0; i < 10; i++) printf("Hello World!\n"); 반복횟수 i의 값 i<10 반복여부 1번째 반복 참 반복 2번째 반복 1 3번째 반복 2 4번째 반복 3 5번째 반복 4 6번째 반복 5 7번째 반복 6 8번째 반복 7 9번째 반복 8 10번째 반복 9 11번째 반복 10 거짓 중지

예제 시작 i=1 , sum=0 i <= 10 sum = sum + i Sum출력 i++ //  반복을 이용한 정수합 프로그램 #include <stdio.h> int main(void) {         int i, sum;         sum = 0;               for(i = 1;i <= 10; i++)                 sum += i; // sum = sum + i;와 같음         printf("1부터 10까지 정수의 합= %d\n",sum);         return 0; } i=1 , sum=0 i가 10보다 작거나 같은 때 까지 10번 반복 NO i <= 10 YES sum = sum + i Sum출력 i++ 1부터 10까지 정수의 합 = 55

예제 1 3 2 3 i n // 반복을 이용한 세제곱값구하기 #include <stdio.h> int main(void) {         int i, n;         printf("정수를 입력하시오:");         scanf("%d", &n);         printf("====================\n");         printf("   i       i의 세제곱\n");         for(i = 1;i <= n; i++)                 printf("%5d     %5d\n", i, i*i*i);          return 0; } 1 3 2 3 i n 정수를 입력하시오: 3 ====================     i      i의 세제곱 1 1 2 8 3 27

예제 // 반복을 이용한 네모 그리기 #include <stdio.h> int main(void) { int i; printf("**********"); for(i = 0;i < 5; i++) printf("* *"); return 0; } ********** * *

예제 3 3 1 2 10 2 1 6 20 i fact n // 반복을 이용한 팩토리얼 구하기 #include <stdio.h> int main(void) {         long fact=1;         int i, n;         printf("정수를 입력하시오:");         scanf("%d", &n);         for(i = 1;i <= n; i++)                 fact = fact * i;         printf("%d! 은 %d입니다.\n",n,fact);                return 0; } 3 3 1 2 10 2 1 6 20 n i fact 정수를 입력하시오: 3 3! 은 6입니다.

while 루프와 for 루프와의 관계 ; for ( ; ; ) while ( ) { { ... ... } ; ; ; ; ; 초기식 초기식 ; 조건식 ; 증감식 ) while ( 조건식 ) { { 문장1 ; 문장2 ; 문장1 ; ... 문장2 ; ... } 증감식 ; }

팩토리얼 계산 예제(while 버전) // 반복을 이용한 팩토리얼 구하기 #include <stdio.h> int main(void) { long fact = 1; int i = 1, n; printf("정수를 입력하시요: "); scanf("%d", &n); while (i <= n) fact = fact * i; i++; } printf("%d!은 %d입니다.", n, fact); return 0;

다양한 증감수식의 형태 뺄셈 사용 2씩 증가 2를 곱한다. 어떤 수식이라도 가능 for (i = 10; i > 0; i-- ) printf("Hello World!\n"); 뺄셈 사용 for (i = 0; i < 10; i += 2 ) printf("Hello World!\n"); 2씩 증가 for (i = 1; i < 10; i *= 2 ) printf("Hello World!\n"); 2를 곱한다. for (i = 0; i < 100; i = (i * i) + 2 ) printf("Hello World!\n"); 어떤 수식이라도 가능

디양한 for 루프 한부분이 없을 수도 있다. 2개 이상의 변수 초기화 어떤 수식도 가능 무한 반복 루프 for ( ; i<100; i++ ) printf("Hello World!\n"); 한부분이 없을 수도 있다. for (i = 0, k = 0; i < 100; i++ ) printf("Hello World!\n"); 2개 이상의 변수 초기화 for (printf("반복시작”), i = 0; i < 100; i++ ) printf("Hello World!\n"); 어떤 수식도 가능 for ( ; ; ) printf("Hello World!\n"); 무한 반복 루프

중첩 반복문 중첩 반복문(nested loop): 반복문 안에 다른 반복문이 위치

예제 1 9 2 1 2 4 10 1 20 x y ② ① 0부터 9까지 10번 반복 0부터 4까지 5번 반복 // 중첩 for 문을 이용하여 *기호를 사각형 // 모양으로 출력하는 프로그램 #include <stdio.h> int main(void) {         int x, y;         for(y = 0;y < 5; y++)         {                 for(x = 0;x < 10; x++)                         printf("*");                 printf("\n");         }         return 0; } 0부터 9까지 10번 반복 1 9 2 1 2 x 0부터 4까지 5번 반복 4 10 1 20 y ② * * * ******* \n ① ********** \n

예제 #include <stdio.h> int main(void) { int x, y; for(y = 1; y <= 5; y++) for(x = 0; x < y; x++) printf("*"); printf("\n"); // 내부 반복문이 종료될 때마다 실행 } return 0; * ** *** **** *****

continue 문 현재의 반복을 중단하고 다음 반복을 시작하게 한다. ; ; for ( ; ; ) while ( ) do { 초기식 ; 초기식 for ( 초기식 ; 조건식 ; 증감식 ) while ( 조건식 ) do { { 문장1 ; { 문장1 ; 문장1 ; 문장2 ; 문장2 ; 문장2 ; continue ; continue ; continue ; } 증감식 ; 증감식 ; } } while ( 조건식 ) ;

예제 #include <stdio.h> int main(void) { int i; for(i=0 ; i<10 ; i++) if( i%3 == 0 ) continue; printf("%d ", i); return 0; } 3의 배수 는 건너뛴다. 1 2 4 5 7 8

break 문 현재의 반복을 중단하고 루프를 빠져 나온다. ; ; for ( ; ; ) while ( ) do { { { } 초기식 ; 초기식 for ( 초기식 ; 조건식 ; 증감식 ) while ( 조건식 ) do { { 문장1 ; { 문장1 ; 문장1 ; 문장2 ; 문장2 ; 문장2 ; break; break; break; } 증감식 ; 증감식 ; } } while ( 조건식 ) ;

예제 grade < 0.0 count ++ break sum += grade #include <stdio.h> int main(void) {         float grade, sum = 0.0, average;         int count = 0;         while(1)         {                 printf("학생 성적을 입력하시오: ");                 scanf("%f", &grade);                 if( grade < 0.0 )                         break;                 count++;                 sum += grade;                  }         average = sum / count;         printf("학생들의 평균은 %f입니다.\n", average);         return 0; } 학생 성적을 입력하시오: 90 학생 성적을 입력하시오: 80 학생 성적을 입력하시오: 70 학생 성적을 입력하시오: -1 학생들의 성적의 평균은 82.500000입니다. YES grade < 0.0 음수 입력 시 while문을 나옴 NO count ++ break sum += grade

예제 12.0 9.0 -1 v // break를 이용하여 무한루프를 탈출한다. #include <stdio.h> #include <math.h> int main(void) {         double v;         while(1)         {                 printf("실수 값을 입력하시오: ");                 scanf("%lf", &v);                 if( v < 0.0 )                         break;                 printf("%f의 제곱근은 %f\n", v, sqrt(v));         }   return 0; } 12.0 9.0 -1 v 실수 값을 입력하시오: 9.0 9.000000의 제곱근은 3.000000입니다. 실수 값을 입력하시오: 12.0 12.000000의 제곱근은 3.464102입니다. 실수 값을 입력하시오: -1

예제 b B A Q a letter // 소문자를 대문자로 변경한다. #include <stdio.h> int main(void) {         char letter;         while(1)         {                 printf("소문자를 입력하시오: ");                 scanf(" %c", &letter);                 if( letter == 'Q' )                         break ;                 if( letter < 'a' || letter > 'z' )                         continue ;                 letter -= 32;                 printf("변환된 대문자는 %c입니다.\n", letter);         }         return 0; } b B A Q a letter 소문자를 입력하시오 : a 변환된 대문자는 A입니다.. 소문자를 입력하시오 : b 변환된 대문자는 B입니다. 소문자를 입력하시오 : Q

예제 – 달력 만들기 #include <stdio.h> #define START_DAY 3 // 첫번째 날이 수요일 #define DAYS_OF_MONTH      31     // 달의 일수 int main(void) {         int day, date;        printf("=====================\n");         printf("일 월 화 수 목 금 토\n");         printf("=====================\n"); // 월요일부터 수요일까지         for(day = 0; day < START_DAY ; day++)                     printf("   ");                       // 공백 출력         for(date = 1; date <= DAYS_OF_MONTH ; date++)         {                 if( day == 7 )                 {                         day = 0;      // 일요일이면 줄바꿈을 출력                         printf("\n");                 }                 day++;                 printf("%2d ", date);               // 날을 출력한다.         }         printf("\n=====================\n");         return 0; }

실습 반복문을 사용하여 다음 조건에 맞는 프로그램을 작성하시오 2중 for문을 사용하여 구구단 1~9단을 한번에 출력하는 프로그램. ‘*’ 기호로 삼각형 출력하는 프로그램

1번 결과

2번 결과

실습: 숫자 추측 게임 프로그램이 가지고 있는 정수를 사용자가 알아맞히는 게임 사용자가 답을 제시하면 프로그램은 자신이 저장한 정수와 비교하여 제시된 정수가 더 높은지 낮은지 만을 알려준다.

실행 결과 정답을 추측하여 보시오: 10 제시한 정수가 낮습니다. 정답을 추측하여 보시오: 30 정답을 추측하여 보시오: 60 제시한 정수가 높습니다. 정답을 추측하여 보시오: 59 축하합니다. 시도횟수=4

알고리즘 do 사용자로부터 숫자를 guess로 입력받는다. 시도횟수를 증가한다. if( guess < answer ) 숫자가 낮다고 출력한다. if( guess > answer ) 숫자가 높다고 출력한다. while(guess != answer); “축하합니다”와 시도횟수를 출력한다.

소스 #include <stdio.h> int main(void) { int answer =59; // 정답 int guess; int tries = 0; // 반복 구조 do { printf("정답을 추측하여 보시오: "); scanf("%d", &guess); tries++; if (guess >answer) // 사용자가 입력한 정수가 정답보다 높으면 printf("제시한 정수가 높습니다."); if (guess <answer) // 사용자가 입력한 정수가 정답보다 낮으면 printf("제시한 정수가 낮습니다."); } while (guess !=answer); printf("축하합니다. 시도횟수=%d", tries); return 0; }

도전문제 위의 프로그램이 게임이 되려면 난수를 발생시키는 것이 좋다. 난수는 (rand()%100)으로 발생이 가능하다. stdlib.h 헤더 파일도 포함시켜야 한다.

소스 #include <stdio.h> #include <stdlib.h> int main(void) { int answer; int guess; int tries = 0; answer = (rand()%100); // 정답 // 반복 구조 do { printf("정답을 추측하여 보시오: "); scanf("%d", &guess); tries++; if (guess >answer) // 사용자가 입력한 정수가 정답보다 높으면 printf("제시한 정수가 높습니다."); if (guess <answer) // 사용자가 입력한 정수가 정답보다 낮으면 printf("제시한 정수가 낮습니다."); } while (guess !=answer); printf("축하합니다. 시도횟수=%d", tries); return 0; }

실습 프로그램 1

실습 프로그램 2

실습 프로그램 3

실습 프로그램 1

실습 프로그램 2

Q & A