오늘 제가 게시 한 problem에 관한 것입니다. 주어진 번호의 숫자를 확인하고 인쇄하는 프로그램을 만들었습니다. 이 프로그램은 1, 2, 4 자리 (최대 4 개)를 사용할 때 정상적으로 작동하지만 3 자리 숫자를 입력하면 숫자가 잘못 인쇄되고 갑자기 종료됩니다. 이상한 코드 오류
#include <stdio.h>
#include <stdlib.h>
#include <digits.h>
int getDigit(long);
int main()
{
int ctr, digits, dig, multiNo, number;
printf("Enter the number(4 digits max): ");
scanf("%d", &number);
printf("\n");
digits = getDigit(number);
if (digits == 1)
printf("%d\n", number);
else
{
multiNo = pow(10, (digits-1));
ctr = 1;
dig = (number/multiNo);
printf("%d ", dig);
while (ctr < digits)
{
number %= multiNo;
multiNo/= 10;
dig = (number/multiNo);
printf("%d ", dig);
ctr++;
}
}
printf("\n\n");
system("PAUSE");
return 0;
}
int getDigit(long num)
{
long divider = 10;
int digit, i;
for (i=1; i<=9; i++)
{
digit = (num/divider);
if (digit == 0)
break;
else
divider *= 10;
}
return i;
}
죄송합니다
, 나는 ..
어쨌든 getDigit (int) 함수를 게시하여이 코드를 컴파일하고 실행할 수 있습니까? 그 함수가 getNumberOfDigits (int)를 수행하고있는 것처럼 보입니다. 그러나 우리는 완전히 확신 할 수 없습니다. – Novelocrat
출력이란 무엇입니까? – ralphtheninja
프로그램이 작동합니다. – ralphtheninja