Write a program,which accept a number from the user and count the frequency of each digit in that number.
Answers
Answer:
Please mention the language
Answer:
Write a program,which accept a number from the user and count the frequency of each digit in that number.
Explanation:
/**
* C program to count frequency of digits in a given number
*/
#include <stdio.h>
#define BASE 10 /* Constant */
int main()
{
long long num, n;
int i, lastDigit;
int freq[BASE];
/* Input number from user */
printf("Enter any number: ");
scanf("%lld", &num);
/* Initialize frequency array with 0 */
for(i=0; i<BASE; i++)
{
freq[i] = 0;
}
/* Copy the value of 'num' to 'n' */
n = num;
/* Run till 'n' is not equal to zero */
while(n != 0)
{
/* Get last digit */
lastDigit = n % 10;
/* Remove last digit */
n /= 10;
/* Increment frequency array */
freq[lastDigit]++;
}
/* Print frequency of each digit */
printf("Frequency of each digit in %lld is: \n", num);
for(i=0; i<BASE; i++)
{
printf("Frequency of %d = %d\n", i, freq[i]);
}
return 0;
}
Let us take a note on above program.
#define BASE 10 defines a constant with name BASE. Since there are 10 digits in decimal number system hence I have defined it as a constant variable.
I have declared num with long long data type and to access a long long I have used %lld format specifier.
However some compiler does not support long long type. If you are facing issues with long long type you can use long or int type.
In statement n /= 10; I have used shorthand assignment operator which is equivalent to n = n / 10;.
The increment statement freq[lastDigit]++; is equivalent to freq[lastDigit] = freq[lastDigit] + 1;.
Output
Enter any number: 11203458760011
Frequency of each digit in 11203458760011 is:
Frequency of 0 = 3
Frequency of 1 = 4
Frequency of 2 = 1
Frequency of 3 = 1
Frequency of 4 = 1
Frequency of 5 = 1
Frequency of 6 = 1
Frequency of 7 = 1
Frequency of 8 = 1
Frequency of 9 = 0
Happy coding