3월 29일 배열

2010. 3. 29. 11:342010년/3월

-배열-

배열은 아마 여러 자료형이 있으면  같은 자료형을 많이 사용한것을 하나로 묶어서 사용하는  개념이다.
어떻게 보면 그룹같은 느낌인데 int형을 선언해서 10개면 10번 선언해야하지만 int i[10]을 통해 한번만

에 가능하다. 배열의 장점은 이것이 끝이  아니다.  int i[10]에서  i가  바로 변수가 아니고 주소라는 점

즉 상수다. 그래서 포인터 연산자와  함께 사용할경우 쉽게  접근할수 있다. int i[10]  , int *p   p=i;가능

하다.
#include<stdio.h>
int
 main()
{
  int  *p=0;
  int inum[10];
  int icnt;
  
  for(icnt=0;icnt<10;++icnt)
  {
    fscanf(stdin,"%d",&inum[icnt]);
  }
  putchar('\n');
  for(icnt=0;icnt<10;++icnt)
  {
    fprintf(stdout,"inum[%d]\t%d\n",icnt,inum[icnt]);
  }
  putchar('\n');
  p=inum;
  for(icnt=0;icnt<10;++icnt)
  {
    fprintf(stdout,"[%d]\n",*p);
    ++p;
  }
  p=inum;
  putchar('\n');
  for(icnt=0;icnt<10;++icnt)
  {
    fprintf(stdout,"[%d]\n",p[icnt]);
  
  }
  for(p=inum;p<=&inum[9];++p)
  {
    fprintf(stdout,"[%d]\n",*p);
  
  }
  return 0;
}
결과~


버블 정렬 프로그램
#include<stdio.h>
void
 bubble_sort(int[],int);
void swap(int*,int*);
void printVector(int[],int);
int main()
{
  int   vector[5]={5,4,3,2,1};
  bubble_sort(vector,5);
  return 0;
}
void  bubble_sort(int array[ ], int count)
{
  int i;
  int j;
  for(i=0;i<count-1;i++)
  {
    for(j=0;j<count-1-i;j++)
    {
      if(array[j]>array[j+1])
      {
        swap(&array[j],&array[j+1]);
        printVector(array,5);
      }
      printf("\n");
    }
  }
}

void swap(int *px, int *py)
{
  int temp;
  temp=*px;
  *px=*py;
  *py=temp;
}

void printVector(int V[ ], int n)
{
  int i;
  for(i=0;i<n;i++)
  {
    printf("%5d", V[i]);
  }
  printf("\n");
}

---------------------
2차원 배열
#include<stdio.h>
int
 main()
{
  int i;
  int j;
  int array[3][4]/*={{15,23,45,56,},
            {34,52,76,23},
            {43,62,91,84}}*/
;
  for(i=0;3>i;++i)
  {
    for(j=0;4>j;++j)
    {
      scanf("%d ",&array[i][j]);
    }
    printf("\n");
  }
  for(i=0;3>i;++i)
  {
    for(j=0;4>j;++j)
    {
      printf("%d ",array[i][j]);
    }
    printf("\n");
  }
  return  0;
}


형식인수
#include<stdio.h>
int
 sum_matrix(int m[][3]);
int main()
{
  int sum;
  int mat[3][3]={{13,23,15},{11,8,25},{17,14,21}};

  sum=sum_matrix(mat);
  printf("Answer : %d\n",sum);
  printf("size of = %d\n",sizeof(mat));

  
}
int  sum_matrix(int mat[][3])
{
  int i;
  i=mat[0][0]+mat[1][1]+mat[2][2];
  printf("sum_matrix mat size of  : %d\n",sizeof(mat));
  return i;
}


-문자열-
#include<stdio.h>
int
  main()
{
  char  string[80];
  printf("Plese enter a  sentence:  ");
  gets(string);
  puts(string);
  return 0;
}

'2010년 > 3월' 카테고리의 다른 글

3월31일 연결리스트, 전역변수  (0) 2010.03.31
3월 30일 문자열/구조체  (0) 2010.03.30
3월26일 (수학함수 포인터)  (0) 2010.03.26
3월25일 함수와 스택구조  (0) 2010.03.25
3월 24일 함수와redirection  (0) 2010.03.24