(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