배열 (Array)
: 변수 여러개가 나열되어 있는 형태,
실제로 메모리 내부에 일렬로 나열된 데이터
• 배열 활용 방법
- 선언의 경우 : int 변수명 [배열크기] // 변수가 배열 크기 만큼 똑같이 있다.
- 활용의 경우 : 변수명 [배열번호]
배열번호(인덱스)는 0부터 시작한다.
ex) 배열크기가 4일 경우 인덱스 : 0, 1, 2, 3
배열을 선언할 때에 변수 안 대괄호 안에 '변수가 갖고 있는 값' 등을 넣을 수 없다. 오로지 숫자만 가능
#include <cstdio>
ex)
int main() {
int name[10]; //name이라는 변수가 10개 있다.
name[0]= 1; //배열 변수는 0부터 존재
name[1]= 2;
printf("%d", name[0]);
return 0;
}
ex)
#include <cstdio>
int main(){
int myArray[5] = { 1, 5, 10, 20, 100}; //선언하고 변수에 바로 값을 줄땐 {} 이용
for (int i=0; i < 5; i++){
printf("myArray[%d] = %d \n",i, myArray[i]);
}
return 0;
}
출력값
myArray[0] = 1
myArray[1] = 5
myArray[2] = 10
myArray[3] = 20
myArray[4] = 100
ex)
#include <cstdio>
int main(){
int a = 2;
int value[3] = {1, 34, 100};
printf("%d", value[a]);
return 0;
}
출력값
100
다차원 배열 활용 방법
선언의 경우 : int 변수명 [배열크기][배열크기]
활용의 경우 : 변수명 [배열번호][배열번호]
배열번호(인덱스)는 0부터 시작한다.
ex)
#include <cstdio>
int main(){
int multiArray[3][3];
for (int i = 0; i < 3; i++){
for (int k = 0; k < 3; k++){
multiArray[i][k] = i * k;
}
}
for (int i = 0; i < 3; i++){
for (int k = 0; k < 3; k++){
printf("%d", multiArray[i][k]);
}
printf("\n");
}
return 0;
}
//for loop를 이용해서 출력하는 것과 다른 점 :
실제로 값이 메모리에 저장이 되어 있다가 저장된 값을 우리가 불러왔다는 점
선언과 동시에 값을 할당하는 경우 : {}을 이중으로 엮어서 준다
ex)
#include <cstdio>
int main(){
int multiArray[3][3] = {
{1, 2, 3},
{2, 3, 4},
{4, 5, 6}
};
for (int i = 0; i < 3; i++){
for (int k = 0; k < 3; k++){
printf("%d", multiArray[i][k]);
}
printf("\n");
}
return 0;
}
연습 프로그래밍 #1
크기가 20인 배열을 만들고 각각의 배열 원소에
2, 4, 6, 8, ...의 수열을 할당하여
해당 배열을 출력하세요 (반복문을 사용하세요)
#include <cstdio>
int main(){
int myArray[20];
for (int i=0; i<20; i++){
myArray[i]= (i+1) * 2;
}
for (int i = 0; i < 20; i++){
printf("myArray[%d] = %d\n", i, myArray[i]);
}
return 0;
}
**for 문에 printf 같이 써주지 말고 따로 for문을 만들어서 출력해주기**
연습프로그래밍 #2
크기가 20인 배열을 만들고 각각의 배열 원소에
피보나치 수열을 할당하여
해당 배열을 출력하세요 (반복문을 사용하세요)
1, 1, 2, 3, 5, 8, ...
#include <cstdio>
int main(){
int fibo[20];
fibo[0] = 1;
fibo[1] = 1; // fibo[0]과 fibo[1]을 지정해주는 것이 관건
for (int i = 2; i < 20; i++){
fibo[i]= fibo[i-1]+ fibo[i-2];
}
for (int i = 0; i < 20; i++){
printf("fibo[%d] = %d\n", i, fibo[i]);
}
return 0;
}
연습 프로그래밍 #3
크기가 10x10인 이차원 배열을 만들고 각각의 배열 원소에
원소를 1 ~100까지 할당한 후
해당 배열을 출력하세요 (반복문을 사용하세요)
방법1 변수 활용하기
#include <cstdio>
int main(){
int myArray[10][10];
int count = 1;
for (int i = 0; i < 10; i++){
for (int k = 0; k < 10; k++){
myArray[i][k]= count;
count++;
}
}
for (int i = 0; i < 10; i++){
for (int k = 0; k < 10; k++){
printf("%d ",myArray[i][k]);
}
printf("/n");
}
return 0;
}
방법2 자기가 직접 계산하기
#include <cstdio>
int main(){
int myArray[10][10];
for (int i = 0; i < 10; i++){
for (int k = 0; k < 10; k++){
myArray[i][k] = (k + 1) + i * 10;
}
}
for (int i = 0; i < 10; i++){
for (int k = 0; k < 10; k++){
printf("%d ",myArray[i][k]);
}
printf("/n");
}
return 0;
}
연습
크기가 5x5인 이차원 배열 세개를 만들고
첫번째 배열은 1, 2, 3, 4, ... 으로 할당하고
두번째 배열은 2, 4, 6, 8, ... 으로 할당하며
두 배열의 동일한 인덱스에 존재하는 원소들의 합을
세 번째 배열에 저장한 후
해당 배열을 출력하세요 (반복문을 사용하세요)
#include <cstdio>
int main(){
int multiArray1[5][5];
int multiArray2[5][5];
int multiArray3[5][5];
int count = 1;
for (int i = 0; i < 5; i++){
for (int k = 0; k < 5; k++){
multiArray1[i][k] = count;
}
}
count = 1;
for (int i = 0; i < 5; i++){
for (int k = 0; k < 5; k++){
multiArray2[i][k] = count * 2;
count++;
multiArray3[i][k] = multiArray1[i][k] + multiArray2[i][k];
}
}
for (int i = 0; i < 5; i++){
for (int k = 0; k < 5; k++){
multiArray3[i][k] = multiArray1[i][k] + multiArray2[i][k];
}
}
for (int i = 0; i < 5; i++){
for (int k = 0; k < 5; k++){
printf ("%d ", multiArray3[i][k]);
}
printf("\n");
}
return 0;
}
'C언어' 카테고리의 다른 글
c언어 6 (헤더파일 / 소스파일) (0) | 2021.07.26 |
---|---|
c언어 5 (형변환 / 구조체) (0) | 2021.07.08 |
c언어 3 (중첩 반복 / 제어 - 반복문에 대한 제어) (0) | 2021.07.01 |
c언어 2 (조건문, 반복문) (0) | 2021.07.01 |
C언어 1 (출력 / 변수 / 할당 / 입력 / 함수 / 연산) (0) | 2021.06.28 |