본문 바로가기
C 언어

c 언어[021] 배열 숫자 입력하고 그 입력한 값을 거꾸로 출력하는 코드- 배열의 크기=배열 요소의 개수

by Smart Factory in 2020 2021. 9. 30.
728x90
반응형

안녕하세요. 스마트팩토리입니다.

c 언어[021] 배열 숫자 입력하고 그 입력한 값을 거꾸로 출력하는 코드- 배열의 크기=배열 요소의 개수에 대해 알아보겠습니다.

1. 배열 : 

(1) 배열 숫자 거꾸로 출력하기 

 

arr[5] 에 10,20,30.40.50을 배열 요소로 가지고 있습니다. 출력은 하는 방법은 반복문  for를 사용하는데
이를 거꾸로 하기 위해서는 인덱스번호가 높은 순서대로 출력을 하도록 반복을 해주면 됩니다. 

<<배열의 크기>>

int n = sizeof(arr) / sizeof(int);

먼저 배열의 요소의 개수를 구해 보았습니다. 
배열의 크기는 배열 요소의 개수를 의미합니다.

배열을 선언하면  메모리에 배열에 대한 공간이 할당되고 그 크기는 자료형에 대한 메모리 할당 크기*배열 요소의 개수가됩니다.  그래서 배열의 크기 즉 배열 요소의 개수가 됩니다. 
sizeof를 사용하면  sizeof(arr)값은 배열 메모리 공간 전체의 크기를 의미합니다. 그래서 자료형의 크기로 나누어 주면 배열의 크기가 나옵니다. 

<거꾸로 출력하기 >

for (int i = n - 1; i >= 0; i--) {

거꾸로 출력하는 것은 인덱스 번소가 가장 수부터 차례로 줄여나가면 됩니다. 
arr[5]는배열의 크기가 5를 의미합니다. 그런데 배열은 arr[0] 부터 시작해서 arr[4]까지 인덱스를 가지고 있기 때문에 거꾸로 출력시 인덱스 번호가 배열의 크기가  하나 적어야 합니다. 그래서 n-1 부터 시작입니다. 

마지막은 인덱스 0이므로 >=0 으로하고 하나씩 감소시키면 됩니다. 

 

#include<stdio.h>

int main() {
int arr[5] = { 10,20,30,40,50 };
int n = sizeof(arr) / sizeof(int);
for (int i = n - 1; i >= 0; i--) {
printf("%d", arr[i]);
}
printf("\n");
}

 

(2) 배열 입력받은 숫자 거꾸로 출력하기 

 

출력하는 방식은 동일합니다. 

단지 배열을 각 요소를 입력하기 위해서 scanf를 이용했습니다 .그 값을 배열 요소에 먼저 넣어야 해서 반복문을 활용했습니다. 

for (int i = 0; i < n; i++) {
scanf_s("%d", &arr[i]);
}

순차적으로 입력을 하고 요소에 각 요소 값을 입력 받습니다. 

for (int i = n - 1; i >= 0; i--) {
printf("%d", arr[i]);

출력은 먼저 큰수에 입력하는 방식으로 해서 줄여나가는 방법을 취했습니다 

 

#include<stdio.h>

int main() {
int n;
int arr[100];
printf("입력할 숫자의 개수를 입력 :");
scanf_s("%d", &n);
for (int i = 0; i < n; i++) {
scanf_s("%d", &arr[i]);
}
for (int i = n - 1; i >= 0; i--) {
printf("%d", arr[i]);

}
728x90
반응형

댓글