Pro 14 basic fct

Page 1

2014-2 기초프로그래밍 2

14.기본입출력함수 이해


제1장

기본입출력함수 이해 1.1 1.1.1

프로그램의 시작 ”함수” 함수,Function

• 관련 있는 일련의 처리를 한데 모아 놓은 것 • 모듈화에 의한 프로그램의 질 향상이 가능 • 유지 보수 및 확장의 용이성 • 문제 해결의 용이성 : ”Divide and Conquer!” • Parameter 와 Return 값의 유무에 따라 4가지 형태를 갖음 • 프로시져,Procedure - 입력만 존재하고 출력이 없는 함수 형태

2


프로그램의 시작 ”함수”

1.1.2

main Function

• entry 포인트(시작점) • 실행파일은 반드시 main 함수로부터 시작한다 • main 함수의 입력은 프로그램 실행시 option 으로 결정된다. - ipconfig /all

Figure 1.1: main 기본 구조

1.1.0 main 기본 구조 예 1

#include <stdio.h>

2 3

int myfct(int a)

4

{ return 2*a +3;

5 6

}

7

int main(int argc, char *argv[])

8

{ printf("x=%d y=%d \n",2,myfct(2));

9

return 0;

10 11

}

12 13

---------- Run GCC ----------

14

x=2 y=7

15 16

출력 완료 (0초 경과) - 정상 종료

1.1.3

return의 의미

• 함수를 종료(빠져 나온다) • 함수를 호출한 영역으로 값을 반환

1.1.4

return의 특징

• return은 함수 내에서 존재 하지 않을 수도 있다. • 둘 이상의 return문이 존재하는 것도 가능 • 한 개의 값을 외부로 전달

3


제 1 장 기본입출력함수 이해

1.2

입출력함수의 기본적 이해

Figure 1.2: C 프로그램의 기본 입출력 함수

Figure 1.3: printf() 함수 동작원리

1.2.1

printf() 함수

• 결과를 출력할 때 사용하는 함수 • 괄호 안의 내용을 모니터에 출력하라는 의미 • %d : 정수 출력에 사용하는 기호 • \n : 출력되지 않는 특수문자, 다음 줄로 넘어가라는 뜻

1.2.0 main 기본 구조 예 1

#include <stdio.h>

2

int main(void)

3

{

4

printf("Hello Everybody \n");

5

printf("%d \n", 1234);

6

printf("%d %d \n", 10, 20);

7

return 0;

8

}

9

---------- Run GCC ----------

10

Hello Everybody

11

1234

12

10 20

13 14

4

출력 완료 (0초 경과) - 정상 종료


입출력함수의 기본적 이해

서식 문자(Conversion specifier)

1.2.2

Figure 1.4: 출력 대상의 출력 형태를 지정하기 위한 문자

1.2.1 서식 문자 예 1

#include <stdio.h>

2

int main(void)

3

{

4

printf("My age : %d \n", 20);

5

printf("%d is my point \n", 100);

6

printf("Good \nmorning \neverybody\n"); return 0;

7 8

}

9

---------- Run GCC ----------

10

My age : 20

11

100 is my point

12

Good

13

morning

14

everybody

15 16

출력 완료 (0초 경과) - 정상 종료

Figure 1.5: 서식 문자 예

5


제 1 장 기본입출력함수 이해

1.2.3

scanf() 함수

1.2.2 scanf() 함수 예 1

#include <stdio.h>

2

int main(void)

3

{ int val;

4

scanf("%d", &val);

5 6

}

Figure 1.6: scanf() 함수 예

6


C언어 주석처리법

1.3

C언어 주석처리법

• 프로그래머에게 메모(memo)의 기능을 부여 • 컴파일러는 주석을 없는 것으로 간주 • 주석을 삽입 함으로 인해 프로그램의 가독성 증가 • 선택이 아닌 필수!

1.3.0 주석 예 1

//주석하나

2

//주석 둘

3 4

/* 한 줄 짜리 주석*/

5 6

/*

7

여러줄에

8

걸친 주석

9

*/

7


제 1 장 기본입출력함수 이해

연습문제

1.4

Question

1

입력만 존재하고 출력이 없는 함수 형태를 무엇이라고 하는가? 정답

2

프로시져

입출력의 종류에 따른 함수의 4가지 형태에 대해 각각 설명하시오. 정답

3

아래 결과와 같이 1부터 100까지 합과 평균을 구하는 프로그램을 javascript 와 c 언어로 각각 작성 하시오. 1.4.0 문제

1

합 : 5050

2

평균 : 50

3

계속하려면 아무 키나 누르십시오 . . .

4

정답 1.4.1 정답 1 2

<script>

3

for(n = 1, s = 0; n<=100; n++)

4

s += n;

5

a=s/n;

6

document.write("합 :" + s + "<br>");

7

document.write("평균 :" + a + "<br>"); </script>

8 9

----------------

10 11 12 13 14

#include "stdafx.h"

15 16

int _tmain(int argc, _TCHAR* argv[])

17

{

18

int n = 1, s = 0, a=0;

19

for( ; n<=100; n++)

20

s += n;

21

a=s/n;

22

8


연습문제

23

printf("합 : %d \n" ,s);

24

printf("평균 : %d \n" ,a); return 0;

25 26

}

27 28

합 : 5050

29

평균 : 50

30

계속하려면 아무 키나 누르십시오 . . .

31 32 33

9


제 1 장 기본입출력함수 이해

4

아래와 같이 두 수를 입력받아서 큰 수와 작은 수를 구하는 프로그램을 완성하시오. 1.4.2 문제

1

#include <stdio.h>

2

int main(void)

3

{

4

int v1,v2;

5

int max,min;

6

printf("두개의 서로 다른 정수 입력:");

7

scanf("%d %d",&v1,&v2);

8

//추가

9 10

printf("%d 가 %d 보다 더 큰수 입니다.\n",max, min);

11

return 0;

12 13

}

14

---------- Run GCC ----------

15

두개의 서로 다른 정수 입력:3 5

16

5 가 3 보다 더 큰수 입니다.

17

계속하려면 아무 키나 누르십시오 . . .

1.4.3 정답 1

#include <stdio.h>

2

int main(void)

3

{

4

int v1,v2;

5

int max,min;

6

printf("두개의 서로 다른 정수 입력:");

7

scanf("%d %d",&v1,&v2);

8

if(v1>v2) max = v1,min = v2;

9

else

10

max = v2,min = v1;

11 12

printf("%d 가 %d 보다 더 큰수 입니다.\n",max, min);

13

return 0;

14 15

}

16

---------- Run GCC ----------

17

두개의 서로 다른 정수 입력:3 5

18

5 가 3 보다 더 큰수 입니다.

19

계속하려면 아무 키나 누르십시오 . . .

5

아래와 같이 세 개의 서로 다른 수를 입력 받아서 큰 수와 작은 수를 구하는 프로그램을 완성하시오. (-100 에서 100사이 값 입력), 배열을 이용할 수 있음 1.4.4 문제

10


연습문제

1

-- 결과

2

세개의 서로 다른 정수 입력:4 -7 10

3

10 가 가장 큰값 -7가 가장 작은값 입니다.

4

계속하려면 아무 키나 누르십시오 . . .

1.4.5 정답 1

#include <stdio.h>

2

int main(void)

3

{

4

int v[3];

5

int max=-100,min=100;

6

printf("세개의 서로 다른 정수 입력:");

7

scanf("%d %d %d",&v[0],&v[1],&v[2]);

8

for(int i=0; i<3; i++)

9

{ if(v[i]>=max) max = v[i];

10

if(v[i]<=min) min = v[i];

11 12

}

13

printf("%d 가 가장 큰값 %d가 가장 작은값 입니다.\n",max, min); return 0;

14 15

}

16

-- 결과

17

세개의 서로 다른 정수 입력:4 -7 10

18

10 가 가장 큰값 -7가 가장 작은값 입니다.

19

계속하려면 아무 키나 누르십시오 . . .

11


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.