포인터와 배열 조 병 규 한 국 교 통 대 학 교 SQ Lab.
포인터 형(pointer type) * type 확보 bit 크기 수록 값 32-bit 기억 장소 주소(address) 자료를 수록하는 기억장소의 위치(주소:address)를 수록할 수 있는 공간으로 32비트의 기억 공간이 확보됨 SQ Lab.
자료형 *변수이름 [, *변수이름] . . . ; 포인터형 변수(포인터)의 확보 • type은 int, float, char, 기타의 자료형이며 변수이름 앞에 *를 기술한다. • 자료를 수록하는 기억장소의 위치(address)를 수록할 수 있는 32비트의 기억 공간이 확보됨 • 포인터형 변수도 변수이므로 자체의 기억장소 주소가 있고, 수록되는 값도 기억장소의 주소이며 모든 주소는 정수로 표현된다. • 포인터형 변수에 수록된 값(기억장소 주소) 또는 변수 자체를 포인터(pointer)라 하고, 임의의 기억장소를 간접 지정하려고 할 경우와 문자열을 처리할 경우 사용 SQ Lab.
&변수이름 포인터 연산자 & (변수의 주소 취득) 변수이름 앞에 &를 기술하면 해당 변수(기억장소)의 주소(address)를 취득한다. SQ Lab.
*포인터형변수 포인터 연산자 * (기억장소의 간접 지정) 포인터형변수에 수록된 값(주소)의 장소를 지적 하든가 지적된 장소에 수록된 값을 참조한다. SQ Lab.
(예) 포인터(정수형) /*001*/ // pointer01cNcpp /*002*/ /*003*/ #include "iostream" /*004*/ /*005*/ using namespace std; /*006*/ /*007*/ void main() /*008*/ { /*009*/ int i; /*010*/ cout << "\n i address=>(" << &i << ")"; /*011*/ /*012*/ int *iPointer; /*013*/ cout << "\n\n iPointer address=>(" << &iPointer << ")"; /*014*/ SQ Lab.
/*016*/ *iPointer = 100; // i = 100; /*017*/ /*018*/ cout << "\n\n i=>" << i; /*019*/ cout << "\n *iPointer=>" << *iPointer; /*020*/ /*021*/ *iPointer = *iPointer + 23; /*022*/ cout << "\n\n i=>" << i; /*023*/ cout << "\n *iPointer=>" << *iPointer; /*024*/ /*025*/ cout << "\n\n\n Type any characte<Enter> : "; /*026*/ cin >> i; /*027*/ } SQ Lab.
i(0x0012FF7C) iPointer(0x0012FF78) i(0x0012FF7C) iPointer(0x0012FF78) /*009*/ int I; i(0x0012FF7C) /*010*/ cout << "\n i address=>(" << &i << ")"; /*012*/ int *iPointer; iPointer(0x0012FF78) /*015*/ iPointer = &i; i(0x0012FF7C) iPointer(0x0012FF78) (0x0012FF7C)
iPointer(0x0012FF78) i(0x0012FF7C) (0x0012FF7C) 100 /*016*/ *iPointer = 100; // i = 100; i(0x0012FF7C) 100 iPointer(0x0012FF78) (0x0012FF7C) /*018*/ cout << "\n\n i=>" << i; /*019*/ cout << "\n *iPointer=>" << *iPointer;
iPointer(0x0012FF78) i(0x0012FF7C) (0x0012FF7C) 123 /*021*/ *iPointer = *iPointer + 23; i(0x0012FF7C) 123 iPointer(0x0012FF78) (0x0012FF7C) /*022*/ cout << "\n\n i=>" << i; /*023*/ cout << "\n *iPointer=>" << *iPointer;
(예) 포인터(실수형, 문자형) /*001*/ // pointer02cNcpp /*002*/ /*003*/ #include "iostream" /*004*/ /*005*/ using namespace std; /*006*/ /*007*/ void main() /*008*/ { /*009*/ float f; /*010*/ cout << "\n f address=>(" << &f << ")"; /*011*/ /*012*/ float *fPointer; /*013*/ cout << "\n\n fPointer address=>(" << &fPointer << ")"; /*014*/ /*015*/ fPointer = &f; /*016*/ *fPointer = 12.00; // f = 12.00; /*017*/ SQ Lab.
/*018*/ cout << "\n\n f=>" << f; /*019*/ cout << "\n *fPointer=>" << *fPointer; /*020*/ /*021*/ *fPointer = *fPointer + 0.345; /*022*/ cout << "\n\n f=>" << f; /*023*/ cout << "\n *fPointer=>" << *fPointer; /*024*/ ///////////////////////////////////////////////////////////////// /*025*/ char c; /*026*/ cout << "\n\n\n c address=>(" << &c << ")"; /*027*/ /*028*/ char *cPointer; /*029*/ cout << "\n\n cPointer address=>(" << &cPointer << ")"; /*030*/ /*031*/ cPointer = &c; /*032*/ *cPointer = 'X'; // c = 'X'; /*033*/ SQ Lab.
/*034*/ cout << "\n\n c=>" << c; /*035*/ cout << "\n *cPointer=>" << *cPointer; /*036*/ /*037*/ cout << "\n\n\n Type any characte<Enter> : "; /*038*/ cin >> c; /*039*/ } SQ Lab.
string1 (222222) string2 string3 string2 (444444) /*009*/ char *string1 = "first string", /*010*/ *string2, /*011*/ *string3; (222222) first string\0 string1 (222222) string2 string3 /*013*/ string2 = "second string"; string2 (444444) (444444) second string\0
string3 (666666) (666666) (666666) string3 understand?...\0 (666666) /*015*/ string3 = new char; string3 (666666) (666666) /*016*/ cout << "\n type a string : "; /*017*/ cin >> string3; string3 (666666) (666666) understand?...\0
string1 (222222) string2 (444444) (666666) string3 understand?...\0 first string\0 string2 (444444) (444444) second string\0 string3 (666666) (666666) understand?...\0 /*019*/ cout << "\n string1=>" << string1 /*020*/ << "\n string2=>" << string2 /*021*/ << "\n string3=>" << string3; SQ Lab.
배열(array) 일반적으로 특성(구조, 성격)이 같은 원소들이 인접하게 연속적으로 배치된 것(기억 장소) SQ Lab.
1차원 배열 (one dimensional array) [1] 1차원 배열의 선언 자료형 배열이름[원소개수]; 각 원소를 구분하기 위하여 첫 번째 원소부터 0, 1, 2, 3, . . . ,n의 순서대로 번호가 부여됨 [2] 1차원 배열의 초기 값 설정 자료형 배열이름[배열크기] = {첫번쩨원소값,두번째원소값, . . .,마지막원소값}; [3] 1차원 배열의 특정 원소 지적 배열이름[원소번호] SQ Lab.
(예) 1차원 배열 /*001*/ // array0101cNcpp /*002*/ /*003*/ #include "iostream" /*004*/ /*005*/ using namespace std; /*006*/ /*007*/ void main() /*008*/ { /*009*/ int oneArray[6]; /*010*/ /*011*/ oneArray[0] = 0; /*012*/ oneArray[1] = 1; /*013*/ oneArray[2] = 3; /*014*/ oneArray[3] = 5; /*015*/ oneArray[4] = 7; /*016*/ oneArray[5] = 9; SQ Lab.
/*018*/ cout << "\n oneArray[1] => " << oneArray[1] /*017*/ /*018*/ cout << "\n oneArray[1] => " << oneArray[1] /*019*/ << "\n oneArray[3] => " << oneArray[3] /*020*/ << "\n oneArray[5] => " << oneArray[5]; /*021*/ /*022*/ cout << "\n\n Type any character<Enter> : "; /*023*/ cin >> oneArray[0]; /*024*/ } SQ Lab.
[0] [1] [2] [3] [4] [5] [0] [1] [2] [3] [4] [5] /*009*/ int oneArray[6]; oneArray [0] [1] [2] [3] [4] [5] /*011*/ oneArray[0] = 0; /*012*/ oneArray[1] = 1; /*013*/ oneArray[2] = 3; /*014*/ oneArray[3] = 5; /*015*/ oneArray[4] = 7; /*016*/ oneArray[5] = 9; int oneArray[6] = {0, 1, 3, 5, 7, 9}; oneArray 1 3 5 7 9 [0] [1] [2] [3] [4] [5] SQ Lab.
/*018*/ cout << "\n oneArray[1] => " << oneArray[1] SQ Lab.
2차원 배열 (two dimensional array) [1] 2차원 배열의 선언 자료형 배열이름[줄수][칸수]; 각 원소를 구분하기 위한 줄 번호와 칸 번호가 0, 부터 순서적으로 부여됨 SQ Lab.
[2] 2차원 배열의 초기 값 설정 type 배열이름[줄수][칸수] = { {첫 번째 줄의 값} {두 번째 줄의 값} . {마지막 번째 줄의 값} }; [3] 2차원 배열의 특정 원소 지적 배열이름[줄번호][칸번호] SQ Lab.
(예) 2차원 배열 /*001*/ // array0201cNcpp /*002*/ /*003*/ #include "iostream" /*004*/ /*005*/ using namespace std; /*006*/ /*007*/ void main() /*008*/ { /*009*/ int twoArray[2][4]; /*010*/ /*011*/ twoArray[0][0] = 1; /*012*/ twoArray[0][1] = 3; /*013*/ twoArray[0][2] = 5; /*014*/ twoArray[0][3] = 7; /*015*/ SQ Lab.
/*021*/ // int twoArray[2][4] = {{1, 3, 5, 7}, {2, 4, 6, 8}}; /*022*/ /*020*/ /*021*/ // int twoArray[2][4] = {{1, 3, 5, 7}, {2, 4, 6, 8}}; /*022*/ /*023*/ cout << "\n twoArray[0][0] => " << twoArray[0][0] /*024*/ << "\n twoArray[0][2] => " << twoArray[0][2] /*025*/ << "\n twoArray[1][1] => " << twoArray[1][1] /*026*/ << "\n twoArray[1][3] => " << twoArray[1][3]; /*027*/ /*028*/ cout << "\n\n Type any character<Enter> : "; /*029*/ cin >> twoArray[0][0]; /*030*/ } SQ Lab.
twoArray [0][0] [0][1] [0][2] [0][3] [1][0] [1][1] [1][2] [1][3] /*009*/ int twoArray[2][4]; twoArray [0][0] [0][1] [0][2] [0][3] [1][0] [1][1] [1][2] [1][3] twoArray [0] [1] [2] [3] SQ Lab.
int twoArray[2][4] = {{1, 3, 5, 7}, {2, 4, 6, 8}}; /*015*/ /*016*/ twoArray[1][0] = 2; /*017*/ twoArray[1][1] = 4; /*018*/ twoArray[1][2] = 6; /*019*/ twoArray[1][3] = 8; twoAarray [0] [1] [2] [3] 1 3 5 7 2 4 6 8 int twoArray[2][4] = {{1, 3, 5, 7}, {2, 4, 6, 8}}; SQ Lab.
/*023*/ cout << "\n twoArray[0][0] => " << twoArray[0][0] /*028*/ cout << "\n\n Type any character<Enter> : "; /*029*/ cin >> twoArray[0][0]; SQ Lab.
3차원 배열 (three dimensional array) [1] 3차원 배열의 선언 자료형 배열이름[면수][줄수][칸수]; 각 원소를 구분하기 위gkdu 면 번호, 줄 번호 그리고 칸 번호가 0, 부터 순서적으로 부여됨 SQ Lab.
[2] 3차원 배열의 초기 값 설정 자료형 배열이름[줄수][칸수] = { { {첫 번째 면의 첫 번째 줄의 값} 자료형 배열이름[줄수][칸수] = { { {첫 번째 면의 첫 번째 줄의 값} {첫 번째 면의 두 번째 줄의 값} . {첫 번째 면의 끝 번째 줄의 값} } {마지막 면의 첫 번째 줄의 값} {마지막 면의 두 번째 줄의 값} {마지막 면의 끝 번째 줄의 값} }; SQ Lab.
[3] 3차원 배열의 특정 원소 지적 배열이름[면번호][줄번호][칸번호] SQ Lab.
(예) 3차원 배열 /*001*/ // array0301cNcpp /*002*/ /*003*/ #include "iostream" /*004*/ /*005*/ using namespace std; /*006*/ /*007*/ void main() /*008*/ { /*009*/ int threeArray[2][2][3]; /*010*/ /*011*/ //1st plane /*012*/ threeArray[0][0][0] = 0; //1st row /*013*/ threeArray[0][0][1] = 1; /*014*/ threeArray[0][0][2] = 2; /*015*/ threeArray[0][1][0] = 10; //2nd row /*016*/ threeArray[0][1][1] = 11; /*017*/ threeArray[0][1][2] = 12; SQ Lab.
/*019*/ threeArray[1][0][0] = 100; //1st row /*018*/ //2nd plane /*019*/ threeArray[1][0][0] = 100; //1st row /*020*/ threeArray[1][0][1] = 101; /*021*/ threeArray[1][0][2] = 102; /*022*/ threeArray[1][1][0] = 110; //2nd row /*023*/ threeArray[1][1][1] = 111; /*024*/ threeArray[1][1][2] = 112; /*025*/ /*026*/ // int threeArray[2][2][3] = { /*027*/ // {{0, 1, 2}, {10, 11, 12}}, /*028*/ // {{100, 101, 102}, {110, 111, 112}} /*029*/ // }; /*030*/ /*031*/ cout << "\n threeArray[0][0][0] => " << threeArray[0][0][0] /*032*/ << "\n threeArray[0][1][0] => " << threeArray[0][1][0] /*033*/ << "\n threeArray[1][0][1] => " << threeArray[1][0][1] /*034*/ << "\n threeArray[1][1][1] => " << threeArray[1][1][1]; /*035*/ /*036*/ cout << "\n\n Type any character<Enter> : "; /*037*/ cin >> threeArray[0][0][0]; /*038*/ } SQ Lab.
threeArray 칸 [0] [1] [2] 줄 면 /*009*/ int threeArray[2][2][3]; SQ Lab. 면[0] [0] [1] [2] threeArray 면[1] [0] [1] [2] SQ Lab.
int threeArray[2][2][3] = { {{0, 1, 2}, {10, 11, 12}}, /*012*/ - /*024*/ threeArray 면[0] [0] [1] [2] 1 2 10 11 12 threeArray 면[1] [0] [1] [2] 100 101 102 110 111 112 int threeArray[2][2][3] = { {{0, 1, 2}, {10, 11, 12}}, {{100, 101, 102}, {110, 111, 112}} }; SQ Lab.
/*031*/ cout << "\n threeArray[0][0][0] => " << threeArray[0][0][0] /*036*/ cout << "\n\n Type any character<Enter> : "; /*037*/ cin >> threeArray[0][0][0]; SQ Lab.
크기 비설정 배열 [1] 배열의 선언 [2] 배열의 특정 원소 지적 자료형 배열이름[ ] = {초기 값 설정}; 자료형 배열이름[ ] = {초기 값 설정}; [ ]에서 크기를 설정하지 않으면 1차원 배열에만 적용되는 것으로 반드시 초기 값을 설정하여야 함 확보되는 기억 장소는 초기 값의 수만큼 확보되는 것이 아니라 시스템에서 사용할 수 있을 만큼의 기억 장소가 확보됨 [2] 배열의 특정 원소 지적 배열이름[첨자] 첨자의 범위는 0부터 n까지이다. SQ Lab.
(예) 크기 비설정 배열 /*001*/ // array0001cNcpp /*002*/ /*003*/ #include "iostream" /*004*/ /*005*/ using namespace std; /*006*/ /*007*/ void main() /*008*/ { /*009*/ int intArray[] = {1, 3, 5}; /*010*/ /*011*/ cout << "\n intArray[0] => " << intArray[0] /*012*/ << "\n intArray[1] => " << intArray[1] /*013*/ << "\n intArray[2] => " << intArray[2]; /*014*/ /*015*/ intArray[3] = 7; /*016*/ cout << "\n intArray[3] => " << intArray[3]; /*017*/ SQ Lab.
(예) 크기 비설정 배열 /*018*/ intArray[5] = 9; /*019*/ cout << "\n intArray[5] => " << intArray[5]; /*020*/ /*021*/ cout << "\n\n Type any character<Enter> : "; /*022*/ cin >> intArray[0]; /*023*/ } SQ Lab.
intArray 1 3 5 . . . [0] [1] [2] [3] [4] [5] [n] intArray 1 3 5 7 9 /*007*/ int intArray[] = {1, 3, 5}; intArray 1 3 5 . . . [0] [1] [2] [3] [4] [5] [n] /*013*/ intArray[3] = 7; /*016*/ intArray[5] = 9; intArray 1 3 5 7 9 . . . [0] [1] [2] [3] [4] [5] [n] SQ Lab.
배열과 포인터 포인터 = 배열이름; 배열을 선언하여 기억 장소가 확보될 때 내부적으로는 배열 이름에 첫 번째 원소의 주소가 수록됨 따라서 배열 이름을 포인터에 수록하여 배열을 처리할 수도 있임 SQ Lab.
(예) 배열과 포인터 /*001*/ // arrayNpointer01cNcpp /*002*/ /*003*/ #include "iostream" /*004*/ /*005*/ using namespace std; /*006*/ /*007*/ void main() /*008*/ { /*009*/ int intArray[5] = {11, 22, 33, 44, 55}; /*010*/ cout << "\n intArray=>(" << intArray << ")"; /*011*/ /*012*/ int* intPointer; /*013*/ intPointer = intArray; /*014*/ cout << "\n\n intPointer=>(" << intPointer << ")" /*015*/ << "=>" << *intPointer; /*016*/ SQ Lab.
/*017*/ intPointer = intPointer + 1; /*018*/ cout << "\n\n intPointer=>(" << intPointer << ")" /*019*/ << "=>" << *intPointer; /*020*/ /*021*/ intPointer = intPointer + 2; /*022*/ cout << "\n\n intPointer=>(" << intPointer << ")" /*023*/ << "=>" << *intPointer; /*024*/ /*025*/ intPointer = intArray + 4; /*026*/ cout << "\n\n intPointer=>(" << intPointer << ")" /*027*/ << "=>" << *intPointer; /*028*/ /*029*/ cout << "\n\n Type any character<Enter> : "; /*030*/ cin >> intArray[0]; /*031*/ } SQ Lab.
(0x0012FF6C) intPointer (0x0012FF6C) + 1 = (0x0012FF70) intPointer /*009*/ int intArray[5] = {11, 22, 33, 44, 55}; intArray (0x0012FF6C) (0x0012FF70) (0x0012FF74) (0x0012FF78) (0x0012FF7C) 11 22 33 44 55 [0] [1] [2] [3] [4] /*011*/ int* intPointer; intPointer /*012*/ intPointer = intArray; intPointer (0x0012FF6C) /*017*/ intPointer = intPointer + 1; 정수형 주소 값을 증가시킬 경우에는 내부적으로 4(바이트)가 증가됨 intPointer (0x0012FF6C) + 1 = (0x0012FF70) SQ Lab.
(0x0012FF70) (0x0012FF78) (0x0012FF6C) (0x0012FF7C) /*021*/ intPointer = intPointer + 2; // 내부적으로 8(바이트)가 증가됨 intPointer (0x0012FF70) + 2 = (0x0012FF78) /*025*/ intPointer = intArray + 4; // 내부적으로 16(바이트)가 증가됨 intArray intPointer (0x0012FF6C) + 4 = (0x0012FF7C) SQ Lab.
int*, long*, unsigned* , unsigned long* short*, unsigned short* 4 2 [참고] 다음은 각 자료형의 주소를 1 증가시킬 경우의 증가 값을 정리한 것임 자료형 증가 값 int*, long*, unsigned* , unsigned long* short*, unsigned short* 4 2 float* double*, long double* 8 char*, signed char*, unsigned char* 1 SQ Lab.
배열로의 문자열 처리 char 배열이름[크기] = "문자열"; char 배열이름[ ] = "문자열"; [1] 문자형 배열 선언과 문자열 수록 char 배열이름[크기] = "문자열"; char 배열이름[ ] = "문자열"; 문자열을 배열에 수록 시켜 처리하려면 배열 선언 시 크기를 설정하지 않고 초기 값으로 수록하여 처리하는 것이 일반적이나 배열의 크기를 설정할 경우 문자열을 구분하는 ‘\0’문자가 수록될 수 있는 크기의 공간을 확보하여야 함. 한 번 초기 값으로 수록시킨 배열의 문자열을 변경하려면 배열의 각 원소에 대한 처리로 해 주어야 함 SQ Lab.
(예) 배열에서의 문자열 처리 /*001*/ // stringArray01cNcpp /*002*/ /*003*/ #include "iostream" /*004*/ /*005*/ using namespace std; /*006*/ /*007*/ void main() /*008*/ { /*009*/ char string1[10] = "ABC"; /*010*/ cout <<"\n string1=>" << string1; /*011*/ /*012*/ string1[0] = 'C'; /*013*/ string1[1] = '&'; /*014*/ string1[2] = 'C'; /*015*/ string1[3] = '+'; /*016*/ string1[4] = '+'; /*017*/ string1[5] = '\0'; SQ Lab.
/*019*/ cout <<"\n string1=>" << string1; /*018*/ /*019*/ cout <<"\n string1=>" << string1; /*020*/ ///////////////////////////////////////////////////////// /*021*/ char string2[4] = "XYZ"; /*022*/ cout <<"\n\n string2=>" << string2; /*023*/ /*024*/ string2[0] = 'o'; /*025*/ string2[1] = 'n'; /*026*/ string2[2] = 'e'; /*027*/ /*028*/ cout <<"\n string2=>" << string2; /*029*/ /*030*/ cout << "\n\n Type any character<Enter> : "; /*031*/ cin >>string1[0]; /*032*/ } SQ Lab.
[참고] string1 = "C&C++"; //이와 같이 기술하면 안됨 /*009*/ char string1[10] = "ABC"; string1 A B C \0 [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] /*012*/ string1[0] = 'C'; /*013*/ string1[1] = '&'; /*014*/ string1[2] = 'C'; /*015*/ string1[3] = '+'; /*016*/ string1[4] = '+'; /*017*/ string1[5] = '\0'; string1 C & + \0 [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [참고] string1 = "C&C++"; //이와 같이 기술하면 안됨 SQ Lab.
[참고] 배열인 string2의 내용을 변경하기 위하여 다음과 같이 기술할 수 없다. string2= "one"; /*021*/ char string2[4] = "XYZ"; string2 X Y Z \0 [0] [1] [2] [3] /*024*/ string2[0] = 'o'; /*025*/ string2[1] = 'n'; /*026*/ string2[2] = 'e'; string2 o n e \0 [0] [1] [2] [3] [참고] 배열인 string2의 내용을 변경하기 위하여 다음과 같이 기술할 수 없다. string2= "one"; SQ Lab.
[2] cin으로의 문자열 입력 char 배열이름[크기]; cin >> 배열이름; 자판에서 입력된 문자열을 지정한 배열에 수록함 확보시킨 공간의 크기보다 입력된 문자열의 크기가 더 크더라도 공간이 자동 확장되어 문자열 모두 수록됨 입력된 문자열은 공백, 탭, 리턴문자로 구분함 SQ Lab.
(예) /*001*/ // stringArray02cNcpp /*002*/ /*003*/ #include "iostream" /*004*/ /*005*/ using namespace std; /*006*/ /*007*/ void main() /*008*/ { /*009*/ char string[100]; /*010*/ /*011*/ cout << "\n Type a string : "; /*012*/ cin >> string; /*013*/ cout << "\n string=>" << string; /*014*/ /*015*/ cout << "\n\n Type any character<Enter> : "; /*016*/ cin >> string; /*017*/ } SQ Lab.
[0] [1] [2] [3] [4] [0] [1] [2] [3] [4] /*009*/ char string[100]; string [0] [1] [2] [3] [4] … [99] /*012*/ cin >> string; (1) 입력된 문자열이 배열의 크기보다 같거나 작을 경우 입력된 문자열이 수록되고 뒤에 '\0'가 수록됨 string X Y Z \0 [0] [1] [2] [3] [4] … [99] SQ Lab.
기억 장소가 확장되어 입력된 문자열이 수록되고 뒤에 '\0'가 수록되나 실행 마지막에 에러 창이 나타남 (2) 입력된 문자열이 배열의 크기보다 클 경우 기억 장소가 확장되어 입력된 문자열이 수록되고 뒤에 '\0'가 수록되나 실행 마지막에 에러 창이 나타남 SQ Lab.
실습문제 [실습문제 1] 1차원 배열 n개의 원소로 이루어진 배열의 각 원소 값을 자판으로부터 입력하여 수록하고, n개의 원소로 이루어진 배열의 각 원소 값을 자판으로부터 입력하여 수록하고, 홀수(또는 짝수) 번호 원소들만의 값을 더한 값을 화면에 나타나게 하시오. SQ Lab.
n개의 원소로 이루어진 배열의 각 원소 값을 자판으로부터 입력하여 수록하고, [실습문제 2] 검색 n개의 원소로 이루어진 배열의 각 원소 값을 자판으로부터 입력하여 수록하고, 임의의 값 x를 자판으로부터 입력받아 그 값이 배열의 몇 번째 원소에 있는지를 알아보는 프로그램을 작성하시오. SQ Lab.
5(n)개의 원소로 이루어진 배열의 각 원소 값을 자판으로부터 입력하여 수록하고, [실습문제 3] 정렬 5(n)개의 원소로 이루어진 배열의 각 원소 값을 자판으로부터 입력하여 수록하고, 작은 값부터 큰 값 순으로 재배치하여 화면에 나타내는 프로그램을 작성하시오. SQ Lab.
(3x4)인 두 행렬의 대응 항목에 대한 더하기 결과를 화면에 나타내게 하시오. 예를 들어 두 행렬이 다음과 같을 경우 X [실습문제 4] 2차원 배열 (3x4)인 두 행렬의 대응 항목에 대한 더하기 결과를 화면에 나타내게 하시오. 예를 들어 두 행렬이 다음과 같을 경우 X 1 3 5 7 2 4 6 8 9 12 y 10 11 12 13 20 21 22 23 30 31 32 33 SQ Lab.
(2x2x3)인 3차원 배열의 배열의 각 원소 값을 자판으로부터 입력하여 수록하고, [실습문제 5] 3차원 배열 (2x2x3)인 3차원 배열의 배열의 각 원소 값을 자판으로부터 입력하여 수록하고, 배열의 값을 나타내고, 모든 원소의 값을 더한 값을 화면에 나타내게 하시오. SQ Lab.