bby4184   2년 전

#include

#pragma warning(disable: 4996)

int main()

{

int a, b, c;

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

int buff[10];

int d = a * b * c;

int i = 0;

int d1 = 1, d2;

while (d1 != 0) {

d1 = d / 10;

d2 = d % 10;

buff[i] = d2;

d = d1;

i++;

}

int n[10] = {0};

for (int j = 0; j < 10; j++) {

if (buff[j] == 0) {

n[0]++;

}

if (buff[j] == 1) {

n[1]++;

}

if (buff[j] == 2) {

n[2]++;

}

if (buff[j] == 3) {

n[3]++;

}

if (buff[j] == 4) {

n[4]++;

}

if (buff[j] == 5) {

n[5]++;

}

if (buff[j] == 6) {

n[6]++;

}

if (buff[j] == 7) {

n[7]++;

}

if (buff[j] == 8) {

n[8]++;

}

if (buff[j] == 9) {

n[9]++;

}

}

for (int k = 0; k < 10; k++) {

printf("%d\n", n[k]);

}

}

어디를 수정해야 할지 잘 모르겠네요.. 도와주시면 감사하겠습니다 ㅎㅎ

ksoosung77   2년 전

buff 생성때 특정한 숫자로 초기화 안해서 그렇습니다

사용자가 만약 visual studio를 쓰신다면 쓰래기 값이 그대로 저장되어 if문에 걸러 질 수 있지만

dev c++에 써보면 쓰래기 값이 0으로 바뀌어 처리되고 있음을 알 수 있습니다

그래서 dev c++에 보면

111*111*111을 하였을때

0
2
0
2
0
0
2
1
0
0

이 아닌

2
3
0
2
0
0
2
1
0
0

로 출력되고 있음을 알 수 있습니다

ksoosung77   2년 전

참고로 쓰래기 값이 0으로 처리된다고 한 부분은 저가 추측한거라서 그건 그냥 무시해 주세요 지금보니 1개는 1에 +1된거보니 잘못된 추측인거 같습니다

댓글을 작성하려면 로그인해야 합니다.