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

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

반응형

포인터 배열


- 주소를 원소로 갖는 배열


ex) char *arr[]


배열 포인터


- 배열을 나타내는 포인터

- 다차원 배열


#include <stdio.h>


void print_array(int (*ptr)[3])

{

        int i=0;

        int j=0;


        for(i=0;i<2;i++){

                for(j=0;j<3;j++){

                        printf("%d ",ptr[i][j]);

                }

                printf("\n");

        }


}


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

{

        int arr2[2][3]={{1,2,3},{4,5,6}};


        print_array(arr2);


        return 0;

}



[실습]


- 학생 2명의 국어, 영어, 수학 점수의 총합과 평균을 구하는 함수를 작성

- 2차원 배열을 사용


#include <stdio.h>


void func(int (*score)[5])

{

        int i=0;

        int j=0;

        int sum=0;

        int avr=0;


        for(i=0;i<2;i++){

                for(j=0;j<3;j++){

                        sum=sum+score[i][j];

                        score[i][3]=sum;

                        score[i][4]=sum/3;

                }

                sum=0;

                printf("sum: %d\n",score[i][3]);

                printf("average: %d\n",score[i][4]);

        }


}


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

{

        int student[2][5]={{80,90,60,0,},{76,88,93,0,}};


        func(student);


        return 0;

}



대화식 프로그래밍


- 표준 출력: printf()

- 표준 출력 장치(모니터)로 내용을 쓰겠다.


- 표준 입력: scanf, gets, fgets, ...

- 표준 입력 장치(키보드)로 내용을 입력받겠다.


scanf


- int scanf(const char *format, ...);



[실습]: 성적처리


- 학생 3명의 국어, 영어, 수학 점수를 입력받아서 

- 각 학생의 총합과 평균을 구하는 프로그램을 작성


#include <stdio.h>


void func(int (*score)[5])

{

        int i=0;

        int j=0;

        int sum=0;


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

                for(j=0;j<3;j++){

                        sum=sum+score[i][j];

                        score[i][3]=sum;

                        score[i][4]=sum/3;

                }

                sum=0;

                printf("sum: %d\n",score[i][3]);

                printf("average: %d\n",score[i][4]);

        }

}



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

{

        int kor=0;

        int eng=0;

        int math=0;

        int student[3][5]={0,};

        int loop1=0;

        int loop2=0;



        for(loop1=0;loop1<3;loop1++){

                for(loop2=0;loop2<3;loop2++){

                        if(loop2==0){

                                printf("kor score: ");

                                scanf("%d",&kor);

                                student[loop1][loop2]=kor;

                        }else if(loop2==1){

                                printf("eng score: ");

                                scanf("%d",&eng);

                                student[loop1][loop2]=eng;

                        }else if(loop2==2){

                                printf("math score: ");

                                scanf("%d",&math);

                                student[loop1][loop2]=math;

                        }

                }

        }


        func(student);


        return 0;

}


[과제]


- 5명의 전화번호를 입력받아 출력해주는 프로그램을 작성


1. 입력

2. 출력

3. 종료

exit(0);

return 0;


      최대 5개의 전화번호를 한번에 입력

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

#include <stdio.h>


void insert(char (*number)[13])

{

        int loop1;

        int i;


        printf("you must insert\"-\"\n");


        for(loop1=0;loop1<5;loop1++){

                                printf("insert number(%d) : ",loop1+1);

                                scanf("%s",&number[loop1][0]);

        }

}


void print(char (*number)[13])

{

        int loop1;

        int loop2=0;


        for(loop1=0;loop1<5;loop1++){

                for(loop2=0;loop2<13;loop2++){

                        printf("%c",number[loop1][loop2]);

                }

                printf("\n");

        }

}


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

{

        int loop1;

        int i=0;

        int j=0;

        int loop2;

        char phone[5][13]={0,};

        int sel=0;


        while(1){

                printf("1.insert\n2.print\n3.exit\n");

                printf("insert number : ");

                scanf("%d",&sel);


                if(sel==1){

                        printf("you insert number 1, insert\n");

                        insert(phone);

                        sel=0;

                }else if(sel==2){

                        printf("you insert number 2, print\n");

                        print(phone);

                }else if(sel==3){

                        printf("you insert number 3, exit\n");

                        return 0;

                }else {

                        break;

                }

        }

}



최대 5개의 전화번호를 1개씩 입력

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

#include <stdio.h>


void insert(char (*number)[13],int j)

{

        int loop1;

        int i;


        printf("you must insert\"-\"\n");

                printf("insert number(%d) : ",j+1);

                scanf("%s",&number[j][0]);

}


void print(char (*number)[13], int j)

{

        int loop1;

        int loop2=0;


        for(loop1=0;loop1<j;loop1++){

                for(loop2=0;loop2<13;loop2++){

                        printf("%c",number[loop1][loop2]);

                }

                printf("\n");

        }

}


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

{

        int loop1;

        int i=0;

        int j=0;

        int loop2;

        char phone[5][13]={0,};

        int sel=0;


        while(1){

                printf("1.insert\n2.print\n3.exit\n");

                printf("insert number : ");

                scanf("%d",&sel);


                if(sel==1){

                        if(j<5){

                                printf("you insert number 1, insert\n");

                                insert(phone, j);

                                sel=0;

                                j=j+1;

                        }else {

                                printf("you already insert five numbers!\n");

                        }

                }else if(sel==2){

                        printf("you insert number 2, print\n");

                        print(phone, j);

                }else if(sel==3){

                        printf("you insert number 3, exit\n");

                        return 0;

                }else {

                        break;

                }

        }

}


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


반응형