본문 바로가기
개발자

두들낙서 20강, 21강 정리 - 배열 (거꾸로 출력, 최대 최소, 짝수의 개수)

by ⁖⁝‥ 2022. 6. 16.

1. 배열 선언

int main() {
	int arr[5] = { 3,1,4,1,5 };

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

}

arr[5] 는 5는 생략해서 arr[] 라고 써도 됨

 

2. 배열에 들어있는 원소의 개수 알아내는 방법

sizeof(arr)/sizeof(int)

int 사이즈가 4바이트고 arr 크기는 전체 예를들어 20 바이트면

20/4 해서 5니까 

원소의 개수는 5임을 알수 있음

근데 for 문을 쓰려면 0부터 4까지 해야되니까 등호를 빼고 

for (int i = 0; i < sizeof(arr)/sizeof(int); i++){
		printf("%d ", arr[i]);
	}

이런 식으로 적어주면 똑같이 0부터 4까지 원소를 출력할 수 있다.

 

3. 입력받은 숫자들을 거꾸로 출력

int main() {
	int n;
	int arr[1000];

	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]);
	}
}

결과 :

4. 최대, 최소

1) 최대

int main() {
	int n;
	int arr[100];

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

arr[0] 은 배열의 맨 앞에 있는 4 

4를 가지고 arr[1](=5) 이랑 비교해서 arr[1]이 크니까 max에 5를 대입.

그다음에 다시 max(=5)와 arr[2](=6) 비교-> 6이 크니까 max에 6을 대입.

그다음 arr[3](=2) , arr[4] 는 max가 더 크니까 max는 그대로.  

max를 출력하면 6 이 나온다.

2) 최소

int main() {
	int n;
	int arr[100];

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

5. 짝수의 개수

int main() {
	int n;
	int arr[100];

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

결과 :

5-1. 일의 자리가 3의 배수인 수의 개수

int k = arr[i] %10 ; (//k 는 일의 자리 숫자)

if (k %3 == 0) 만 하면 3의 배수에다가 일의 자리가 0인 것도 카운트 되므로,

k !=0 (= 일의 자리 숫자가 0이 아닌 것) 인 조건도 포함

둘을 동시에 만족해야 하므로 && 으로 

int main() {
	int n;
	int arr[100];

	scanf_s("%d", &n);
	for (int i = 0; i < n; i++) {
		scanf_s("%d", &arr[i]);
	}
	int cnt = 0;
	
	for (int i = 0; i < n; i++) {
		int k = arr[i] % 10;
		if (k % 3 == 0 && k!=0) {
			cnt++;
		}
	}
	printf("%d", cnt);
}

결과 : 

반응형

댓글