如何修复C ++脚本中的运行时错误

时间:2019-07-29 18:56:37

标签: c++ runtime-error

我的代码尝试检查此方程式中是否存在未知值n的解: x1 + n v1 = x2 + n v2 给定输入x1,v1,x2,v2,并输入 x1 v1 x2 v2 。这样我就可以告诉“ YES”,是否存在等式两边都满足相同值的值。

在我的代码中,

n 被称为输出

出于好奇,这里是问题link

string kangaroo(int x1, int v1, int x2, int v2) {
    string output;
    int x3;
    int v3;

    x3 = x1-x2;
    v3 = v2-v1;

    int div = x3/v3;
    int remain = x3%v3;

    if(div > 0 && remain == 0){
        output = "YES";
    }else{
        output = "NO";

    }

    return output;
}

我的代码可以工作,但是会引起运行时错误,其中x1 v1 x2 v2是43 2 70 2,对于我的解决方案来说太大了。我问我的案子有什么可能的改进措施?

这是我对这个问题的解决方案

if(x1<x2 && v1<v2){
       return "NO";
   }else{
       if(v1!=v2 && ((x2-x1)%(v1-v2)==0)){
           return "YES";
       }else{
           return "NO";
       }
   }

结果:

1。。检查x1,x2和v1,v2值是否创建了不想要的结果     (x1-x2和v1-v2为负,那么这是不必要的)

2。检查除数是否不为零(如果v1!= v2,则不除以零     情况)

致谢。

2 个答案:

答案 0 :(得分:0)

您应该更详细地学习数学,线性代数。对于v1 = v2,这些变量的任何值都将导致运行时错误,因为您将被零除。

对于v1 = v2的情况,方程组无法求解。

答案 1 :(得分:0)

您将收到def make_great(magicians): """This function adds the 'The Great' in front of a magicians name""" great_magicians = [] #A new list to hold names of new magicians while magicians: #This while loop runs while the parameter 'magicians' has elements in it magician = magicians.pop() #Element from magicians parameter held in magician varibale great_magician = magician + " the Great" #Creating a new element to store great_magician great_magicians.append(great_magician) #Adding great_magicians to empty list for great_magician in great_magicians: #Adding elements in great_magician back into magicians magicians.append(great_magician) return magicians magician_names1 = ['inho','mumbo jumbo','trick shotta','hwolla'] magician_names1 = make_great(magician_names1[:]) print(magician_names1) ,这表明只能在运行时检测到此错误。

runtime_error

在这里,您必须确保v3不为零。