今天做C語言的題,遇到了計算一個數的相同數字的個數,冥思苦想,上廁所都在想,想過取餘想過除10但是沒想在一起,最後查了答案。
a = number%10; //這是取到個位
number = number/10; //因為是int變量,是以直接除以10就相當于把個位數字抹去了
循環計a的數就行了。
我把題目貼下面。
int CountDigit( int number, int digit );
其中
number
是不超過長整型的整數,
digit
為[0, 9]區間内的整數。函數
CountDigit
應傳回
number
中
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 a=0; int s=0;
if(number<0) number = -number;
if(number == 0)
if(digit == 0)return 1;
else return 0;
while(number!=0)
{
a = number%10;
if(a == digit)
s++;
number = number/10;
}
return s;
}