[C] 백준 2577번

체인지영·2021년 3월 18일
0

[C언어] 백준

목록 보기
8/10
#include <stdio.h>

int main() {
	int A, B, C;
	int M = 0;
	int mul =0;
	int arr[10] = {0, };
	scanf("%d", &A);
	scanf("%d", &B);
	scanf("%d", &C);
	mul = A * B * C;
	while (1)
	{
		M =  mul % 10;
		if (mul <= 0) break;
		arr[M] ++;
		mul /= 10;
	}
	for (int i = 0; i < 10; i++)
	{
		printf("%d\n",arr[i]);
	}
	return 0;
}
  1. 일단 기존에 파이썬에서는 자료형을 지맘대로 왓다갔다 해도 다 인식했었어서 그런지 c처럼 정교할 필요가 있는 상황에서 막히는 것을 느꼈다. 글자수를 하나하나를 배열로 바꾸기는 c 에서 어렵다. 그렇기에 사칙연산의 논리로 한 숫자씩 떼어와야 한다.

  2. while 에서 종료조건에서 0을 포함하는 것을 실수했다. 그결과 계속 알수없는 오류로 당황스러웠었다. 종료조건은 무엇보다 더 차분히 체크해야할것 같다 .

  3. 배열의경우 자료형 배열 이름 [크기] = {값,값,값} ;
    인데 이때 크기가 들어간 값의 갯수보다 더 큰경우 남는 배열의 값은 0으로 초기화된다. 따라서 위의 코드에서

int arr[10] = {0, };

이것과

int arr[10] = {0, 0,0,0,0,0,0,0,0,0};

이것은 같다.

또한 scanf는 2개 이상 입력을 받을 시, enter 나 tab, 띄어쓰기 등 입력 값 사이에 공백이 있으면 그 공백으로 입력 값들을 구분한다.

scanf("%d", &A);
	scanf("%d", &B);
	scanf("%d", &C);
scanf("%d %d %d", &a, &b, &c);

따라서 위의 식은 아래식으로 대체할 수 있다.

profile
Startup, FrontEnd, BlockChain Developer

0개의 댓글