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;

}







댓글

이 블로그의 인기 게시물

시험에 나오는 전기공사 산업기사정리 전기기기-직류기의 구조

익리덤 없는사람은 불쌍해,,후기, 단점, 도색 (MGEX 스트라이크 프리덤)

주식의 기술적 분석- 이큐볼륨차트(EQui volume chart)