You are on page 1of 16

Review

1. 새로 작성하는 함수는 main( ) 함수보다 먼저 작성되어야 한다 . 하지만 main() 함


수보다 나중에 정의하려면 __________ 을 main( ) 함수 앞에 쓰면 된다 .

2. 다음 함수에서 틀린 점 두 가지를 적으시오 .


int myFunc( v1, int v2)
{
Return ‘A’;
}

3. 빈 칸을 채우시오 .

(2) (3) (3)


(4)
(1)
(5)

(6)

1
함수 Q&A
Q. main() 함수가 반드시 프로그램의 처음에 나와야 하는가 ?
A. 그럴 필요없음 .
main() 이 맨 처음으로 실행되는 함수이지만 소스 파일에서의 위
치는 아무런 상관이 없다 .

Q. 함수가 하나 이상의 값을 반환하게 하려면 어떻게 하여야 하는가


?
A. 3 가지 방법이 존재한다 .
a. 매개 변수로 포인터를 사용하는 방법
b. 구조체를 반환하는 방법
c. 지역 변수를 사용하는 방법

2
실습 Review

6주1강
3주1강

3
6 주 1 강 함수 [ 실습 1]
double 형 변수 2 개의 평균을 계산하는 함수
#include<stdio.h>

double average(double x, double y); // 함수 원형 정의

void main()
{
double a, b, c;
a=2.0;
b=3.0;
c=average(a,b); //a 와 b 를 인수로 하여 average() 를 호
void main()

{
printf(" 평균은 %lf 입니다 .\n", c);
double a, b, c;
}

printf(" 평균을 구할 두 수 입
double average(double x, double y)
력 :");
{
double average(double scanf("%lf%lf", &a, &b);
return (x+y)/2; x,
double
} y)
{ c=average(a,b);
double aver; printf(" 평균은 %lf 입니다 .\n",
aver=(x+y)/2; c);
}
4
return aver;
6 주 1 강 함수 [ 실습 2] 1, 2 번
합을 구하는 함수
#include<stdio.h>

int get_sum(int n); // 함수 선언

int main(void)
{
int sum=0;
sum=get_sum(100); // 함수 호출
printf("0 부터 100 까지의 합은 %d 입니다 .\n",
sum);

sum=get_sum(200);
printf("0 부터 200 까지의 합은 %d 입니다 .\n",
sum);

sum=get_sum(300);
•함수 사용의 장점
printf("0 부터 300 까지의 합은 %d 입니다 .\n",
sum); 코드의 재활용 가능
}
가독성 증대
int get_sum(int n) 유지 관리의 용의
{
int i, sum=0; 5
6 주 1 강 함수 [ 실습 2] 3 번
합을 구하는 함수
#include<stdio.h>

int get_sum(int from, int to);

int main(void)
{
int start, end, sum=0;

start=10;
end=100;

sum=get_sum(start,end); // 함수 호출

printf("%d 부터 %d 까지의 합은 %d 입니다 .\n", start, end,


sum);
}

int get_sum(int from, int to)


{
int i, sum=0;
for(i=from; i<=to; i++)
{ 6
sum+=i;
6 주 1 강 함수 [ 실습 3]
실수의 제곱근 구하는 함수
#include<stdio.h> • //(1) 의 ; 제거 후
double fpower(double r, int n); //(1)

int main(void)
{
double prod; • //(1) 의 double 제거 후
prod=fpower(3.0, 2); //(2)
printf("%lf\n", prod);
}

double fpower(double r, int n)


• //(2) fpower(3.0); 으로 함수 호출 후
{
int i;
double result = 1.0;

for(i=0; i<n; i++) • 함수 선언 제거 후


result*=r;
return (result);
}
7
6 주 1 강 함수 [ 실습 4]
나눗셈 함수
#include<stdio.h>

double divide(double , double ); //(1) 함수의 선언에서 매개변수 이름은 생략 가능

int main(void)
{
double result;

result=divide(3, 10); //(2)

if(result==-1)
printf("0 으로 나눌 수 없습니다 !!");
else
printf(" 나눗셈 결과는 %lf 입니다 .\n", result);

return 0;
}

double divide(double n, double d)


{
double result;

8
if(d==0) return -1;
6 주 1 강 함수 [ 실습 5] 1 번
3 개의 정수 중 가장 큰 수 결정 함수

#include<stdio.h>

int get_max2(int x, int y);


int get_max3(int x, int y, int z);

int main(void)
{
int max;
max=get_max3(1, 2, 3); // 정수 1,2,3 중에서 가장 큰 수 반환 .
printf(" 이들 중 가장 큰 수는 %d 이다 .\n", max);

return 0;
}

int get_max3(int x, int y, int z)


{
if(x>y)
if(x>z) return(x);
else return(z);
else
if(y>z) return(y); 9
else return(z);
6 주 1 강 함수 [ 실습 5] 2 번
3 개의 정수 중 가장 큰 수 결정 함수
#include<stdio.h>

int get_max2(int x, int y);


int get_max3(int x, int y, int z);

int main(void)
{
int max;
max=get_max3(1, 2, 3); // 정수 1,2,3 중에서 가장 큰 수 반환 .
printf(" 이들 중 가장 큰 수는 %d 이다 .\n", max);

return 0;
} int get_max3(int x, int y, int z)
{
int get_max2(int x, int y) int max;
{
if(x>y) max=get_max2(x,y);
return x; max=get_max2(max,z);
else
return y; return(max);
} }
10
int get_max3(int x, int y, int z)
6 주 1 강 함수 [ 실습 6]
출력할 배수를 사용자에게 입력받아 해당 배수를 출력

#include <stdio.h>
#include <conio.h> //getche() 함수 선언
#include <stdlib.h> //rand() 함수 선언

int main(void)
{
int yesno;

while(1)
{
printf(" 주사위를 굴리시겠습니까 ?(y 혹은 n)");
yesno=getche();
printf("\n");
if(yesno=='n') break;
printf(" 주사위면 =%d\n", rand()%6+1);
}
11
return 0;
3 주 1 강 데이터타입 [ 실습 1]
형변환

#include <stdio.h> #include <stdio.h>

int main() int main()


{ {
int x=100; int x=100;
int y; int y;

y=(1/2)*x; y=0.5*x;
printf("%d 의 절반은 %d\n", x, y); printf("%d 의 절반은 %d\n", x,
y);
return 0;
} return 0;
}

12
3 주 1 강 데이터타입 [ 실습 2]
문자형

#include <stdio.h> #include <stdio.h>

int main(void) int main(void)


{ {
char c; char c;

c='A'; c='A'+3;
printf("%d %c \n", c, c); printf("%d %c \n", c, c);

return 0; return 0;
} }

13
3 주 1 강 데이터타입 [ 실습 3]
문자열
#include <stdio.h> #include <stdio.h>

int main(void) int main(void)


{ {
char s[10]; char s[10];
s[0]='H'; s[0]='H';
s[1]='e'; s[1]='e';
s[2]='l'; s[2]='l';
s[3]='l'; s[3]='l';
s[4]='o'; s[4]='o';
s[5]='\0'; // s[5]='\0';
printf("%s\n", s); printf("%s\n", s);

return 0; return 0;
#include <stdio.h>
} }

int main(void)
{
char s[10]="Hello";

printf("%s\n", s);

14
return 0;
3 주 1 강 데이터타입 [ 실습 4]
문자형

#include<stdio.h>

void main()
{
printf("\n%5c ", 'A'); // 'A' 를문자로출력
printf("\t%5d ", 'A'); // 'A' 를아스키코드값으로출력
printf("\n%5c ", 'a'); // 'a' 를문자로출력
printf("\t%5d ", 'a'); // 'a' 를아스키코드값으로출력
printf("\n%5c ", 'A' + 1); // 'A' 보다아스키코드값이하나더큰 'B' 가출력
printf("\t%5c ", 'a' + 1); // 'a' 보다아스키코드값이하나더큰 'b' 가출력
printf("\n%5d ", 'a' -'A'); // 소문자와대문자는아스키코드값이 32 차이
printf("\t%5c ", 'a' -32); // 소문자에서 32 를빼면대문자가구해짐
}

15
3 주 1 강 데이터타입 [ 실습 5]
다양한 변환 문자열 사용 실습
#include <stdio.h> station() // 지하철 역 이름을 입력 받아 출력하는 함수
{
station(); char subway[40];

int main()
printf(" 역 이름을 입력해 주세요 . ");
{
scanf("%s", subway);
char ch='A';
char name[80]=" 황금박쥐 "; printf(" 당신이 입력한 역 이름은 %s 입니다 .\n",
int in=10; subway);
double db=16.8; }

printf(" 정수형 상수의 출력 : %d\n", -10);


printf(" 정수형 변수의 출력 : %d\n", in);
printf(" 정수형 수식의 출력 : %d\n", in/3);
printf(" 정수형 -> 실수형 형변환의 출력 : %f\n", (float)in/3);

printf(" 실수형 상수를 소수점 형태로 출력 : %lf\n", 2.5);


printf(" 실수형 변수를 지수 형태로 출력 : %le\n", db);
printf(" 실수형 수식을 소수점 형태로 출력 : %.2lf\n", db/4);

printf(" 문자상수의 출력 : %c\n", 'F');


printf(" 문자변수의 출력 : %c\n", ch);
printf(" 문자 배열의 출력 : %s\n", name);
printf(" 문자열상수의 출력 : %s\n", " 날아라 태극호 ");

station(); 16

You might also like