これは私が以前に投稿した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