ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1차원 배열
    c언어 기초 2017. 3. 30. 19:41

    1. 배열이란 무엇인가?


    둘 이상의 변수를 동시에 선언하는 효과를 지닌다.

    많은 양의 데이터를 일괄적으로 처리해야 하는 경우에 유용하다.

    지역적 특성을 지닐 수도 있고, 전역적 특성을 지닐 수도 있다.


    배열 선언에 있어서 필요한 것 세 가지
    - 배열 길이 : 배열을 구성하는 변수의 개수 (반드시 상수를 사용)
    - 배열 요소 자료형 : 배열을 구성하는 변수의 자료형
    - 배열 이름 : 배열에 접근할 때 사용되는 이름




    2, 1차원 배열의 접근

    배열 요소의 위치를 표현 : 인덱스(index)

    인덱스는 0에서부터 시작


    *배열 선언과 접근의 예


    int main(void)

    {

        int array[10]; // 배열 선언

        array[0]=10;       // 첫 번째 요소 접근

        array[1]=20;       // 두 번째 요소 접근

        array[2]=30;       // 세 번째 요소 접근

        . . . . .

        return 0;

    }


     







    #include <stdio.h>


    int main(void)

    {

         double total;

         double val[5];


         val[0]=1.01;

         val[1]=2.02;

         val[2]=3.03;

         val[3]=4.04;

         val[4]=5.05;


         total=val[0]+val[1]+val[2]+val[3]+val[4];

         printf("평균 : %lf \n", total/5);


         return 0;

    }


    3. 선언과 동시에 초기화

    int main(void)

    {

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

       int arr2[ ]={1, 3, 5, 7, 9};

       int arr3[5]={1, 2}

    }





    4. 배열 기반 문자열 변수

    - 문자열 상수

    문자열이면서 상수의 특징을 지닌다


        printf("Hello World! \n");



    -문자열 변수

    문자열이면서 변수의 특징을 지닌다

        char str1[5]="Good";

        char str2[]="morning";



     #include <stdio.h>


     int main(void)

     {

         char str1[5]="Good";

         char str2[]="morning";


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

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


         return 0;

     }


    ex ) 5 명의 학생의 성적을 입력 받고 총 합계와 평균 구하기


    #include <stdio.h>
    int main()
    {
          int grade[5];
          int i,sum = 0;
          for(i=0;i<5;i++){
              printf("%d 번째 학생의 성적 : ",i+1);
              scanf("%d",&grade[i]);
          }
          printf("<< 입력한 학생들의 성적 >>\n");
          for(i=0;i<5;i++){
              printf("%d ",grade[i]);
              sum += grade[i];
          }
          printf("\n학생들의  총  합계  : %d\n",sum); 
          printf("학생들의 평균 점수  : %.2f\n",(float)sum/5); 
       return 0;
    }




    5. 문자열의 특징

    문자열은 널(null)문자를 끝에 지닌다.

    널(null) 문자 : '\0'(아스키 코드 값으로 0)


    int main(void)

    {

        char str[6]="Hello";

        printf("Hello");  

        . . . . .


     



    널(null) 문자를 지녀야 하는 이유
    문자열의 끝을 표현하기 위해서
    쓰레기 값과 실제 문자열의 경계를 나타내기 위해
    printf 함수는 널 문자를 통해서 출력의 범위를 결정 짓는다. 

    int main(void)

    {

        char str[100]=”Hello World!”;

        printf(“%s \n”, str);

        . . . . .

    }

    문자열과 char형 배열의 차이점
    char arr1[ ] = "abc";
    char arr2[ ] = {'a', 'b', 'c'};
    char arr3[ ] = {'a', 'b', 'c', '\0'};

    int main(void)
      {
           int i;
           char ch;
           char str[6]="Hello";

           printf("--변경 전 문자열--\n");
           printf("%s \n", str);

           for(i=0; i<6; i++)
                printf("%c | ", str[i]);

           /* 문자열 변경 */
           for(i=0; i<3; i++)
           {
                ch=str[4-i];
                str[4-i]=str[i];
                str[i]=ch;
           }

            printf("\n\n--변경 후 문자열--\n");
            printf("%s \n", str);
            return 0;
    }

    ex ) 문자열 다루기 


    #include <stdio.h>

    int main()

    {

          char String[10] = "Apple"; //초기값 설정

          char String1[10];

          int i;

          String1[0] = 'O';

          String1[1] = 'r';

          String1[2] = 'a';

          String1[3] = 'n';

          String1[4] = 'g';

          String1[5] = 'e';

          String1[6] = '\0'; //문자열 마지막에 NULL문자 삽입

          printf("String = ");

          for(i=0;i<sizeof(String);i++){

              if(String[i]==NULL){break;} //String[i]가 NULL문자일 시 for문 종료

              printf("%c",String[i]);

          }

          printf("\nString1 = %s \n",String1); 

    return 0;

    }



     ex ) 문자열 대 소문자 변환


    String = Apple
    문자열을 소문자로 변환
    String = apple
    문자열을 대문자로 변환
    String = APPLE

     #include <stdio.h>


    int main()

    {

          char A[2];

          char tmp;

          A[0] = 'A';

          A[1] = 'B';

          printf("%c , %c\n",A[0],A[1]);

      ①  tmp = A[0]; 

      ②  A[0] = A[1]; 

      ③  A[1] = tmp;  

          printf("%c , %c\n",A[0],A[1]); 

       return 0;

    }


     



    배열
    Sort
    대량의 데이터를 어떤 순서에 따라 정렬하는 것
    오름차순(작은수부터)과 내림차순(큰 수부터)으로  나뉜다.
    sort의 종류
    - 버블소트 , 삽입 소트, 히프소트 ,퀵 소트 , 힙 소트 등등
    - 버블 sort
    인접원소를 비교해서 더 큰 원소를 뒤로 보내는 방식
    병 밑바닥에서 생긴 버블이 점점 더 커지는 것에 비유
    매우 간단히 구현이 가능하지만 많은 양일 경우에는 비효율 적이다.


    'c언어 기초 ' 카테고리의 다른 글

    scanf 숫자이외의 입력이 있으면 다시 입력받게  (0) 2017.04.18
    포인터  (0) 2017.04.01
    재귀 함수  (0) 2017.03.28
    함수의 정의와 선언  (0) 2017.03.28
    for/무한루프/continue/break문  (0) 2017.03.22

    댓글

Designed by Tistory.