如何克服运行时错误? [英] How do I overcome the runtime error for this?

查看:74
本文介绍了如何克服运行时错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

银行比较

问题描述

有两家银行;银行A和银行B.他们的利率各不相同。您已收到两家银行的年度利率,任期和整个任期内利率变化的报价。



您必须选择哪个优惠花费你最不感兴趣并拒绝另一个。



做计算并做出明智的选择。



贷款还款按月发生,每月分期付款(EMI)使用下面的公式计算:



EMI = loanAmount * monthlyInterestRate /



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



限制条件

1< = P< = 1000000



1< = T< = 50



1< = N1< = 30



1< = N2< = 30



输入格式

第一行:P - 本金(贷款金额)



第二行:T - 总任期(以年为单位)。



李三ne:N1是A银行给定时期内的利率板数。第一块板从第一年开始,第二块板从第一块板的末端开始,依此类推。



下一个N1线将包含利率及其期限。



在N1线之后我们将收到N2即。第二家银行提供的楼板数量。



接下来的N2线是B银行给定时期的利率板数。第一块板块从第一年开始,第二块板从第一块板的末端开始,依此类推。



期间和费率将由单个空格分隔。



输出

您的决定 - 银行A或银行B.





说明

例1



输入



$



20



3



5 9.5



10 9.6



5 8.5



3



10 6.9



5 8.5



5 7.9



输出



银行B



例2



输入



500000



26







13 9.5



3 6.9



10 5.6







14 8.5



6 7.4



6 9.6



输出



银行B



我尝试过:



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;
}





这是我上述问题的代码

i已经收到运行时错误

你能否提出任何建议以避免运行时错误?



this is my code for the above problem
i have been getting runtime error
can you please give any suggestions to avoid runtime error?

推荐答案

由于该代码无法编译,因此无法获得运行时错误。 C中数组的大小必须在编译时定义,因为它们不是动态的。如果你想要动态数组,那么你需要使用 malloc [ ^ ]在运行时创建它们的功能。
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.


使用调试器查找作业中的问题。在第一步,我会在控制台上做一些详细的I / O,以清除数据是否正确。



出于调试目的,我会打印出每个扫描值验证正确的工作。



我猜你错过了输入或你的数组是不受限制的。典型的工作称为调试......
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"...


scanf("%d%lf",&pea[i],&rb[i]);
b = b+(p*peb[j]*rb[j]);



您正在读取 pea 数组,但在计算中使用 peb 元素。


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


这篇关于如何克服运行时错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆