Click here to Skip to main content
16,021,823 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
Bank Compare
Problem Description
There are two banks; Bank A and Bank B. Their interest rates vary. You have received offers from both bank in terms of annual rate of interest, tenure and variations of rate of interest over the entire tenure.

You have to choose the offer which costs you least interest and reject the other.

Do the computation and make a wise choice.

The loan repayment happens at a monthly frequency and Equated Monthly Installment (EMI) is calculated using the formula given below :

EMI = loanAmount * monthlyInterestRate /

( 1 - 1 / (1 + monthlyInterestRate)^(numberOfYears * 12))

Constraints
1 <= P <= 1000000

1 <=T <= 50

1<= N1 <= 30

1<= N2 <= 30

Input Format
First line : P – principal (Loan Amount)

Second line : T – Total Tenure (in years).

Third Line : N1 is number of slabs of interest rates for a given period by Bank A. First slab starts from first year and second slab starts from end of first slab and so on.

Next N1 line will contain the interest rate and their period.

After N1 lines we will receive N2 viz. the number of slabs offered by second bank.

Next N2 lines are number of slabs of interest rates for a given period by Bank B. First slab starts from first year and second slab starts from end of first slab and so on.

The period and rate will be delimited by single white space.

Output
Your decision – either Bank A or Bank B.


Explanation
Example 1

Input

10000

20

3

5 9.5

10 9.6

5 8.5

3

10 6.9

5 8.5

5 7.9

Output

Bank B

Example 2

Input

500000

26

3

13 9.5

3 6.9

10 5.6

3

14 8.5

6 7.4

6 9.6

Output

Bank B

What I have tried:

//This is The Coding Area
#include <assert.h>
#include <limits.h>
#include <math.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
  long int p;
  int  t,n1,n2,i,j;
  scanf("%ld%d%d%d",&p,&t,&n1,&n2);
  int pea[n1],peb[n2];
  float ra[n1],rb[n2],ai,bi,a = 0,b = 0;
  for(i=0;i<n1;i++)
  {
    scanf("%d%lf",&pea[i],&ra[i]);
    a = a+(p*pea[i]*ra[i]);
  }
  for(j=0;j<n2;j++)
  {
     scanf("%d%lf",&pea[i],&rb[i]);
     b = b+(p*peb[j]*rb[j]);
  }
  ai = a/(100);
  bi = b/(100);
  if(ai<bi)
  {
    printf("Bank A");
  }
  else
  {
    printf("Bank B");
  }
 return 0;
}


this is my code for the above problem
i have been getting runtime error
can you please give any suggestions to avoid runtime error?
Posted
Updated 3-Aug-18 22:59pm
v2
Comments
OriginalGriff 4-Aug-18 3:08am    
And what is the runtime error you get?
When do you get it?
What do you enter in order to get it?
Member 13937395 4-Aug-18 3:42am    
compilation is successfull
but i am getting runtime error
OriginalGriff 4-Aug-18 3:51am    
Do you have any idea how many possible run time error types there are?
Loads, and loads. And there are as many causes for each as there are errors!

So, explain to us exactly what you get, and when you get it: any error messages, what lines it says they are on, what you did to cause it.

At the moment, you have broken down in the middle of nowhere, phoned the garage, said "my car broke" and put the phone down. How long do you think you are going to be waiting for the garage to turn up with the right bit to fix it, given they don't know what happened to the car, what car it is, or even where the heck you are?
And that's what you've told us so far: "my code broke".

Help us to help you!
Patrice T 4-Aug-18 5:16am    
and you know the runtime error message and position ?

You cannot get runtime errors since that code will not compile. The sizes of arrays in C must be defined at compile time as they are not dynamic. If you want dynamic array then you need to use the malloc[^] function to create them at run time.
 
Share this answer
 
Comments
Member 13937395 4-Aug-18 3:43am    
I have executed this code in Devc++ also. Its compiling
[no name] 4-Aug-18 4:02am    
Well you still have not bothered to tell us what your problem is.
[no name] 4-Aug-18 4:39am    
What is the error message?
OriginalGriff 4-Aug-18 3:55am    
Depends on the compiler, surprisingly.
Try this code:
#include <stdio.h>

int main()
{
    printf("Hello World\n");
    int n;
    scanf("%d", &n);
    int a[n];
    printf("%d\n", sizeof(a));

    return 0;
}
on this one:
https://www.onlinegdb.com/online_c_compiler
It compiles, and works.
[no name] 4-Aug-18 4:38am    
Implementing a C++ feature in a C compiler ... tut tut.
Use the debugger to find the problem in your homework. At first step I would make some detailed I/O at the console to clear that the data is correct putted in.

For debugging purposes I would print out every scanned value to verify the correct work.

I guess that you misscan the input or your arrays are out of bound. Typical work called "debugging"...
 
Share this answer
 
C++
scanf("%d%lf",&pea[i],&rb[i]);
b = b+(p*peb[j]*rb[j]);

You are reading a value into an element of the pea array, but using an element of peb in your calculations.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900