**(HackerRank) Write a Modular C Programming code to solve STACKS – DENOMINATIONS, Frankinson has N number of coins in his pocket. Coins are of denominations of 1, 2, 5 and 10.**

Frankinson has N number of coins in his pocket. Coins are of denominations of 1, 2, 5 and 10.

He keeps all the coins on the table one above the other. Then he picks out one coin at a time and counts them of specific denomination.

Help Frankinson to count the coins of all the different denominations.

**Input Format**

First line is N number of coins.

Second line is coins of different denominations.

**Constraints**

Denomination of each coin should be either 1,2,5 or 10.

**Output Format**

Number of Coins of Each denomination in separate line.

**Sample Input 0**

```
5
1 2 5 10 1
```

**Sample Output 0**

```
Coins of 1 re = 2
Coins of 2 rs = 1
Coins of 5 rs = 1
Coins of 10 rs = 1
Coins of invalid denominations = 0
```

**Sample Input 1**

```
2
1 3
```

**Sample Output 1**

```
Coins of 1 re = 1
Coins of 2 rs = 0
Coins of 5 rs = 0
Coins of 10 rs = 0
Coins of invalid denominations = 1
```

**Sample Input 2**

```
-5
```

**Sample Output 2**

`Invalid number of coins`

**CODE:**

#include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> #define SIZE 100 struct stack { int coin[SIZE]; int top; }; void push(struct stack *sptr, int num); void pop_count_display(struct stack *sptr); int main() { struct stack * sptr; struct stack s; sptr=&s; sptr->top=-1; int c,n,i; scanf("%d",&n); if(n<0) { printf("Invalid number of coins"); exit(0); } for(i=0;i<n;i++) { scanf("%d",&c); push(sptr,c); } pop_count_display(sptr); } void push(struct stack *sptr, int num) { if(sptr->top==SIZE-1) { printf("Stack Overflow\n"); } else { sptr->top++; sptr->coin[sptr->top]=num; } } void pop_count_display(struct stack *sptr) { int i,c1=0,c2=0,c5=0,c10=0,c=0; for(i=sptr->top;i>=0;i--) { if(sptr->coin[i]==1) { c1++; } else if(sptr->coin[i]==2) { c2++; } else if(sptr->coin[i]==5) { c5++; } else if(sptr->coin[i]==10) { c10++; } else { c++; } sptr->top--; } printf("Coins of 1 re = %d\n",c1); printf("Coins of 2 rs = %d\n",c2); printf("Coins of 5 rs = %d\n",c5); printf("Coins of 10 rs = %d\n",c10); printf("Coins of invalid denominations = %d",c); }

**OUTPUT**

Congratulations, you passed the sample test case. Click the Submit Code button to run your code against all the test cases. Input (stdin) 5 1 2 5 10 1 Your Output (stdout) Coins of 1 re = 2 Coins of 2 rs = 1 Coins of 5 rs = 1 Coins of 10 rs = 1 Coins of invalid denominations = 0 Expected Output Coins of 1 re = 2 Coins of 2 rs = 1 Coins of 5 rs = 1 Coins of 10 rs = 1 Coins of invalid denominations = 0

**Please find some more codes of Loops, Condition Statements, 1D Arrays, 2D Arrays, Strings, Pointers, Data Structures, Files, Linked lists, MISC, Solved model question papers & Hacker Rank all solutions on the below page:**

Top 100+ C Programming codes – KLE Technological University