0부터 9까지 몇번 사용됬는지 저장할 공간을 int형 포인터에 int 자료형 크기로 10개 할당하였다.

자연수 세개를 입력받아, 입력받은 자연수 3개를 곱한다.

곱한 값이 0보다 클때까지 반복하고 반복문 안에는 곱한 값을 10으로 나눈 나머지를 배열의 인덱스로 하여 그 숫자가 나올때 마다 해당 인덱스에 1씩 누적하고 곱한 값을 10으로 나눈다.

할당한 메모리를 해제하고 종료한다.

정답은 다음 코드와 같다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int a, b, c, mul, i;
    int *numPtr = (int*)malloc(sizeof(int* 10);
    scanf("%d %d %d"&a, &b, &c);
    mul = a * b * c;
    
    while(mul > 0)
    {
        i = mul % 10;
        numPtr[i] = numPtr[i] + 1;
        mul /= 10;
    }
    
    for(int i=0; i<10; i++
    {
        printf("%d\n", numPtr[i]);
    }
    free(numPtr);
    return 0;
}
cs

+ Recent posts