#include <stdio.h>
int CountDigit( int number, int digit );
int main()
{
int number, digit;
scanf("%d %d", &number, &digit);
printf("Number of digit %d in %d: %d\n", digit, number, CountDigit(number, digit));
return 0;
}
/* 你的代码将被嵌在这里 */
int CountDigit( int number, int digit )
{
int count=0;
int arr[10];
int d=10;
int i=0;
//12342
while(number>0)
{
for(i;i<10;i++)
{
arr[i]=number%10;
number/=10;
}
for(i=0;i<10;i++)
{
if(digit==arr[i])
{
count++;
}
else
{
;
}
}
}
while(number<0)
{
number=(-1)*number;
for(i;i<10;i++)
{
arr[i]=number%10;
number/=10;
}
for(i=0;i<10;i++)
{
if(digit==arr[i])
{
count++;
}
else
{
continue;
}
}
}
while(number==0)
{
return 0;
}
return count;
}
为什么我通过不了没有digit出现的测试点?
修改如下,供参考:
#include <stdio.h>
int CountDigit(int number, int digit);
int main()
{
int number, digit;
scanf("%d %d", &number, &digit);
printf("Number of digit %d in %d: %d\n", digit, number, CountDigit(number, digit));
return 0;
}
/* 你的代码将被嵌在这里 */
int CountDigit(int number, int digit)
{
int count = 0;
int arr[10];
int d = 10;
int i = 0;
//12342
if (number < 0)
number = -number;
if (number == 0 && digit == 0)
count++;
while (number) {
if (number % 10 == digit)
count++;
number /= 10;
}
#if 0
while (number > 0)
{
for (i; i < 10; i++)
{
arr[i] = number % 10;
number /= 10;
}
for (i = 0; i < 10; i++)
{
if (digit == arr[i])
{
count++;
}
else
{
;
}
}
}
while (number < 0)
{
number = (-1) * number;
for (i; i < 10; i++)
{
arr[i] = number % 10;
number /= 10;
}
for (i = 0; i < 10; i++)
{
if (digit == arr[i])
{
count++;
}
else
{
continue;
}
}
}
while (number == 0)
{
return 0;
}
#endif
return count;
}