2012-11-16 39 views
2

這是我的代碼,用於查找數字的facotrial並查找factorial中所有數字的發生次數。如何查找數組[x] = array [x] + 1

#include <stdio.h> 
#include <stdbool.h> 

int iFactorial(int iCount) 
{ 
    int iProduct = 1; 
    int iNumber = 1; 
    while (iNumber <= iCount) 
    { 
     iProduct *= iNumber; 
     iNumber++; 
    } 
    return iProduct; 
} 

int main(void) 
{ 
    int iFac[10] = {0}; 
    int iCount = 0; 
    printf("Please input a Integer: "); 
    scanf("%d",&iCount); 
    iFac[iCount] = iFactorial(iCount); 
    printf("\nThe value of the factorial of %d is %d\n",iCount, iFac[iCount]); 
    int i; 
    int dig[10] = {0}; 
    while (iFac <=0) 
    { 
     int n; 
     n= ((iFac % 10) + 1); 
     dig[n] = dig[n] +1; 
     iFac = iFac/10; 
    } 

    for (i = 0; i > 9; i++) 
    { 
     if (dig[i+1] >0) 
     { 
      printf ("%d  %d\n", i, dig[i+1]); 
     } 
    } 
} 

我需要找到正確的方法編寫array[x] = array[x] + 1

+0

歡迎來到Stack Overflow。您可以突出顯示整個代碼塊,然後按ctl-k將其格式化爲連續代碼塊。 –

+0

array [x] ++有效嗎? – alinsoar

+3

'while(iFac <= 0)'< - 'iFac'是一個數組。你的意思是'iFac [iCount]'? (並且變量名稱是什麼,C不是由Apple開發的。) –

回答

1

我認爲下面的代碼會清除你想怎麼算的數字。

#include<stdio.h> 

int factorial (int n) 
{ 
if (n == 1) return 1 ; 
return n * factorial(n-1) ; 
} 

int main() 
{ 

//Input number 
int num ; 
scanf("%d", &num) ; 

//Calculate Factorial 
int fact = factorial (num) ; 
cout<< "\nFactorial of Number is " << fact ; 

//Count the frequency of Digits 
int dig[10] = {0} ; 

while(fact) 
{ 
int i = fact % 10 ; 
dig[i]++ ; 
fact /= 10 ; 
} 

for (int i = 0 ; i < 10 ; i++) 
    printf("\n The digit %d is present %d times " , i , dig[i]); 

return 0 ; 
} 

確保您不輸入大數值來計算數字的階乘。

相關問題