3월 29일 배열
2010. 3. 29. 11:34ㆍ2010년/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;
}
배열은 아마 여러 자료형이 있으면 같은 자료형을 많이 사용한것을 하나로 묶어서 사용하는 개념이다.
어떻게 보면 그룹같은 느낌인데 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 |