네트워크 보안 수업 12일차 - 코리아 정보보안 IT학원

2016. 4. 12. 16:47네트워크 보안 수업/C언어

반응형

함수(function)


- 코드의 효율적인 관리

- 코드를 기능별로 분류

- 코르들 재사용


함수의 기본 형태


- 함수의 선언

- 함수의 호출이나 정의보다 먼저 나와야한다.

- 컴파일러에게 해당 함수의 사용을 알림

- 선언과 정의는 중복이 가능


<리턴 타입><함수의 이름>(인자, ...);


- 함수의 정의

- 함수의 기능을 정의하는 부분

- 함수의 선언과 동일


<리턴 타입> <함수의 이름>(인자, ...)

{

//기능

}


- 함수의 호출


<함수의 이름>(값, ...);


[실습]: sample01.c


- 다음 두 수의 합을 구하는 프로그램을 작성


10, 20

2, 5

100, 200

12, 15

1000, 2000


#include <stdio.h>


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

{



return 0;

}


덧셈 함수의 선언과 정의


- 선언


void add( int num1, int num2);


- 정의


void add(int num1, int num2)

{

int sum=0;

sum=num1+num2;

printf("%d+%d=%d\n",num1, num2, sum);

}


- 호출


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

{

add(2,5);

return 0;

}


* 함수를 호출할 때 함수 인자(argument)의 갯수와 타입은 무조건 일치


함수의 리턴


- 함수의 실행 결과를 돌려줄 경우


return 값:


* 함수의 리턴 타입과 실제 리턴해주는 값의 타입은 일치해야 한다.

* void는 특별히 타입을 가지지않는 타입이다

* 함수 앞에 void는 해당 함수가 값을 리턴하지 않음을 뜻한다.

* return 문장이 수행되면 해당 함수는 종료됨을 뜻한다.

* 한 번에 두 개의 값을 동시에 리턴할 수는 없다.

* 리턴되는 값의 크기는 최대 8바이트는 넘어설 수 없다.



[실습]


- 점수를 학접으로 변환하는 함수를 작성

함수 입력 : 0~100 사이의 점수(정수)

함수 반환값 : 학점

A : 80-100

B : 70-79

C : 60-69

D : 50-59

F : 0-49


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

ex)


#include <stdio.h>


char conv(int num)

{

        if(num<100&& num > 80){

                return 'A';

        }else {

                return 'F';


}


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

{

        char grade = 0;


        grade = conv(85);

        printf("%c \n", grade);

        return 0;

}


------------------------------------------------------------------------------------------
(x)
#include <stdio.h>

int class()
{
        int math=90;
        char score;
        if(math>=80){
                score='A';
        } else if(math>=70){
                score='B';
        } else if(math>=60){
                score='C';
        } else if(math>=50){
                score='D';
        } else {
                score='F';
        }
        return score;
}
int main(int argc, char *argv[])
{

        char point;
        point=class();


        printf("학점은 %c\n", point);


        return 0;
}
-----------------------------------------------------------------------------------------------


[과제]


- 화씨를 섭씨로 변환하는 함수를 작성

함수입력 : 화씨

함수 반환값 : 섭씨

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

#include <stdio.h>


float fa(float f)

{

        f=(f-32)/1.8;

        return f;

}


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

{

        float cel=0;


        cel=fa(88);

        printf("%f\n",cel);

        return 0;

}

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

- 섭씨를 화씨로 변환하는 함수를 작성

함수입력 : 섭씨

함수 반환값 : 화씨

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

#include <stdio.h>


float cel(float c)

{

        c=c*1.8+32;

        return c;

}


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

{

        float fa=0;


        fa=cel(22);

        printf("%f\n",fa);

        return 0;

}

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

-소문자를 대문자로 변환하는 함수를 작성

함수 입력: 한 개의 소문자

함수 반환값: 입력이 알파벳 중 하나이면, 해당하는 대문자, 그렇지 않으면 ?표시


* 해당 함수들이 잘 동작하는지 main함수를 이용해 보여라.


#include <stdio.h>


char eng(char alpha)

{

        if(alpha=='a'){

                alpha='A';

        }else if(alpha=='b'){

                alpha='B';

        }else if(alpha=='c'){

                alpha='C';

        }else if(alpha=='d'){

                alpha='D';

        }else if(alpha=='e'){

                alpha='E';

        }else if(alpha=='f'){

                alpha='F';

        }else if(alpha=='g'){

                alpha='G';

        }else if(alpha=='h'){

                alpha='H';

        }else if(alpha=='i'){

                alpha='I';

        }else if(alpha=='j'){

                alpha='J';

        }else if(alpha=='k'){

                alpha='K';

        }else if(alpha=='l'){

                alpha='L';

        }else if(alpha=='m'){

                alpha='M';

        }else if(alpha=='n'){

                alpha='N';

        }else if(alpha=='o'){

                alpha='O';

        }else if(alpha=='p'){

                alpha='P';

        }else if(alpha=='q'){

                alpha='Q';

        }else if(alpha=='r'){

                alpha='R';

        }else if(alpha=='s'){

                alpha='S';

        }else if(alpha=='t'){

                alpha='T';

        }else if(alpha=='u'){

                alpha='U';

        }else if(alpha=='v'){

                alpha='V';

        }else if(alpha=='w'){

                alpha='W';

        }else if(alpha=='x'){

                alpha='X';

        }else if(alpha=='y'){

                alpha='Y';

        }else if(alpha=='z'){

                alpha='Z';

        }else {

                alpha='?';

        }

        return alpha;

}


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

{

        char big=0;


        big=eng('a');

        printf("%c\n",big);


        return 0;

}

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ


이렇게 하면 안됨

반응형