-> 현실 세계로부터 수집한 사실이나 개념의 값 또는 이들의 집합
가공하지 않은 형태의 데이터로서 그 자체로 그 의미를 파악하기 어렵다
-> 특별한 용도로 사용하기 위해 처리/가공한 형태의 데이터
데이터, 그 자체가 의미를 내포한다.
-> 기존 데이터베이스 관리 도구의 능력을 넘어서는 대량의 정형 또는 비정형의 데이터 조차 포함한 데이터로부터 가치를 추출하고 결과를 분석하는 기술
-> 같은 타입의 변수들로 이루어진 유한 집합이라 정의한다.
이러한 배열은 동일한 데이터 타입의 변수를 여러개 사용해야하는 경우 사용한다.
자료형 변수이름[크기];
ex) int a[5]; // 초기값을 주지 않아 모두 쓰레기 값으로 저장됨
초기화 선언 가능 -> int a[5] = {1,2,3,4,5};
배열의 인덱스는 항상 0부터 시작함
배열의 초기화는 변수를 선언할때처럼 생략하거나, 갯수보다 적은 수로 초기화 가능
ex) int b[5] = {1,2};
-> 1,2는 정상적으로 넣고, 그 이후는 0으로 초기화됨
배열을 모두 0으로 초기화 하는 방법
ex) int a[5] = {0};
개수를 지정하지 않고 선언하는 방법
ex) int a[] = {1,2,3};
** 단 -> int a[]; 는 오류임
2차원 배열
위에서 선언한 배열들을 전부 다 1차원 배열이다.
선언 예시 : int a[2][3] = { {1, 2, 3}, {4, 5, 6} };
선언 방법 : 자료형 변수명[행의 갯수][열의 갯수];
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i;
int Number[10] = { 0 };
int Min, Max;
srand((unsigned)time(NULL));
printf("문제 : 정수 배열에 1~100 사이 난수 발생시켜 배열 값 중 최소값과 최대값 구하기\n");
printf("==============================\n");
for (i = 0; i < 10; i++)
{
Number[i] = rand() % 100;
printf("Number[%d] : %d\n",i,Number[i]);
}
Min = Number[0];
Max = Number[0];
for (i = 1; i < 10; i++)
{
if (Min > Number[i])
{
Min = Number[i];
}
if (Max < Number[i])
{
Max = Number[i];
}
}
printf("==============================\n");
printf("최소값은 %d, 최대값은 %d입니다.\n", Min, Max);
printf("==============================\n");
printf("작성자 : 2017E7043 최주영");
}
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int Min_function(int Number[10])
{
int i;
int Min1;
Min1 = Number[0];
for (i = 1; i < 10; i++)
{
if (Min1 > Number[i])
{
Min1 = Number[i];
}
}
return Min1;
}
int Max_function(int Number[10])
{
int i;
int Max1;
Max1 = Number[0];
for (i = 1; i < 10; i++)
{
if (Max1 < Number[i])
{
Max1 = Number[i];
}
}
return Max1;
}
int main()
{
int i;
int Number[10] = { 0 };
srand((unsigned)time(NULL));
printf("문제 : 정수 배열에 1~100 사이 난수 발생시켜 배열 값 중 최소값과 최대값 구하기\n");
printf("==============================\n");
for (i = 0; i < 10; i++)
{
Number[i] = rand() % 100;
printf("Number[%d] : %d\n", i, Number[i]);
}
printf("==============================\n");
printf("최소값은 %d, 최대값은 %d입니다.\n", Min_function(Number),Max_function(Number));
printf("==============================\n");
printf("작성자 : 2017E7043 최주영");
}
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i,j,temp;
int Number[10] = { 0 };
int sum = 0;
float avg = 0;
srand((unsigned)time(NULL));
printf("문제 : 정수 배열에 1~100 사이 난수 발생시켜 합계,평균, 배열값을 크기순(오름차순)으로 정렬하기\n");
printf("==============================\n");
printf("====정렬전====\n");
for (i = 0; i < 10; i++)
{
Number[i] = rand() % 100;
sum = sum + Number[i];
printf("Number[%d] : %d\n", i, Number[i]);
}
avg = (float)sum / 10;
for (i = 0; i < 10; i++)
{
for (j = i+1; j < 10; j++)
{
if (Number[i] > Number[j])
{
temp = Number[i];
Number[i] = Number[j];
Number[j] = temp;
}
}
}
printf("\n");
printf("====정렬후====\n");
for (i = 0; i < 10; i++)
{
printf("Number[%d] : %d\n", i, Number[i]);
}
printf("==============================\n");
printf("합계는 %d, 평균은 %.2f입니다.\n", sum, avg);
printf("==============================\n");
printf("작성자 : 2017E7043 최주영");
}
#include <stdio.h>
#include <string.h>
int main()
{
int i, j,k;
char temp[10];
char data[5][2][20] =
{
{"202105001","유수봉"},
{"202104002","갑시다"},
{"202101003","오시오"},
{"202102004","반갑소"},
{"202103005","나가요"},
};
printf("문제 : 사전식 이름순으로 정렬하여 이름과 학번이 출력되는 프로그램\n");
printf("\n");
printf("==== 정렬 하기전====\n");
for (i = 0; i < 5; i++)
{
for (j = 0; j < 2; j++)
{
printf("%s ", data[i][j]);
}
printf("\n");
}
printf("\n");
for (i = 0; i < 5; i++)
{
for (j = i+1; j < 5; j++)
{
if (strcmp(data[i][1], data[j][1]) > 0)
{
strcpy(temp, data[i][1]);
strcpy(data[i][1], data[j][1]);
strcpy(data[j][1], temp);
}
}
}
printf("===정렬 후====\n");
for (i = 0; i < 5; i++)
{
for(j=0; j<2; j++)
{
printf("%s ", data[i][j]);
}
printf("\n");
}
printf("===================\n");
printf("작성자 : 2017E7043 최주영");
}
#include <stdio.h>
#include <string.h>
int main()
{
int i, j;
char temp[10];
char data[5][2][20] =
{
{"202105001","유수봉"},
{"202104002","갑시다"},
{"202101003","오시오"},
{"202102004","반갑소"},
{"202103005","나가요"},
};
printf("문제 : 오름차순 학번순으로 정렬하여 이름과 학번이 출력되는 프로그램\n");
printf("\n");
printf("====학번 정렬 하기전====\n");
for (i = 0; i < 5; i++)
{
for (j = 0; j < 2; j++)
{
printf("%s ", data[i][j]);
}
printf("\n");
}
printf("\n");
for (i = 0; i < 5; i++)
{
for (j = i + 1; j < 5; j++)
{
if (strcmp(data[i], data[j]) > 0)
{
strcpy(temp, data[i]);
strcpy(data[i], data[j]);
strcpy(data[j], temp);
}
}
}
printf("===학번 정렬 후====\n");
for (i = 0; i < 5; i++)
{
for(j=0; j<2; j++)
{
printf("%s ", data[i][j]);
}
printf("\n");
}
printf("===================\n");
printf("작성자 : 2017E7043 최주영");
}