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
로 출력되고 있음을 알 수 있습니다
2577번 - 숫자의 개수
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
로 출력되고 있음을 알 수 있습니다
참고로 쓰래기 값이 0으로 처리된다고 한 부분은 저가 추측한거라서 그건 그냥 무시해 주세요 지금보니 1개는 1에 +1된거보니 잘못된 추측인거 같습니다
댓글을 작성하려면 로그인해야 합니다.
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]);
}
}
어디를 수정해야 할지 잘 모르겠네요.. 도와주시면 감사하겠습니다 ㅎㅎ