C, C++ 기초 핵심 설명 / 배열 한번에 이해하기! (난수발생하여 배열을 비교하기 )
-다른 변수를 선언해서 비슷한 일을 시키고 싶을떄 반목문을 사용할 수 없기 때문에
같은 데이터형을 메모리에 '연속적'으로 할당하고 같은 이름으로 사용->편의 증대
-배열 각 원소도 변수이며 따로 저장할 메모리 값 할당
-배열의 인덱스는 0부터시작 (0부터 하나로 치고 센다는 말),
-배열 이름 = 배열 전체에 대한 이름
-배열 크기는 0이 될수없고, 생략 할 수 없다, 크기를 알려면 sizeof(arr) 사용
-배열은 주로 for문과 함께 사용 (i = 0 , ~ i++)
-배열의 내용이 같은지 비교하려면 for문으로 원소끼리 비교 (하나라도 다르면 안됨),( ex int is_equal과 if (x==y) 사용
-다차원 배열읜 인덱스를 n개를 사용한다. (int x[5][3] int x를 3개씩 5번 할당 열크기3 .행크기 5)
-매개변수로 배열을 선언 할 때 배열 크기는 생략한다
예제 난수발생하여 배열을 비교하기
#include <stdio.h>
#include <stdlib.h>
#include <time.h> //항상 변화하는 수를 얻는 난수화를 위해 가져오는 헤더
#define ARR_SIZE 100 //배열의 크기를 나타내는 매크로 상수
int main(void)
{
srand(time(NULL)); //srand와 time 함수로 시간흐르며 계속 변하는 난수생성
int x[100]; // 크기가 100인 int 배열을 생성
int y[100];
int size = 0; //배열의 크기 (원소의 갯수) 를 저장할 변수
int i;
int is_equal;
for (int i = 0; i < 100; i++)
{
x[i] = rand();
y[i] = rand();
}
if (x == y)
printf("두 배열이 주소가 같습니다");
else
printf(" 두 배열의 주소가 다릅니다");
is_equal = 1; //배열 내용 같은지를 나타내는 변수
for (i = 0; i < ARR_SIZE; i++) {
if (x[i] != y[i]) { //배열의 원소끼리 비교
is_equal = 0; //다른 원소가 있으면 비교 필요 없어짐
break;
}
}
if (is_equal == 1) //모든 원소가 같으면 1값이다
printf("두 배열의 내용이 같습니다");
else
printf(" 두 배열의 내용이 다릅니다");
return 0;
}
댓글
댓글 쓰기