#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 i=0,z=0,numbera=number;
if(number!=0)
{
z=number%10;
number=number/10;
if(digit==z||-digit==z)
i++;
}
else if(numbera==digit||numbera==-digit)
i++;
return i;
}
为啥为负数的时候得不到正确答案
修改如下,供参考:
#include <stdio.h>
int CountDigit( int number, int digit );
int main() //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 i=0,z=0; //,numbera=number;
while(number) //if(number!=0)
{
z=number%10;
number=number/10;
if(digit==z) //if(digit==z||-digit==z)
i++;
}
//else if(numbera==digit||numbera==-digit)
//i++;
return i;
}
增加对0和负数的处理,修改如下,供参考:
#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 i=0,z=0;
if(number==0 && digit==0)return i=1;//对0的处理
else if(number ==0) return i;
if(number<0) number = -number; //负数的处理
while(number)
{
z=number%10;
number=number/10;
if(digit==z)i++;
}
return i;
}
int CountDigit( int number, int digit )
{
int i,z,numbera=number;
if(number!=0)
for(i=0,z=0;number!=0;)
{
z=number%10;
number=number/10;
if(digit==z||-digit==z)
i++;
}
else if(numbera==digit||numbera==-digit)
i++;
return i;
}