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