gpt4 book ai didi

c++ - 关于 0 出现在我在 CodeRunner 中的输出下的问题

转载 作者:行者123 更新时间:2023-11-28 04:09:23 26 4
gpt4 key购买 nike

我一直从输入中得到正确的输出答案,我在家庭作业中遇到问题,但在我的 CodeRunner 输出下,它会在正确的输出下显示 0 或疯狂的小数,从而导致测试用例错误。有什么建议么?

double calcSimScore(string, string);

int main()
{
calcSimScore("CATTATGCATTATATACAT", "CATCACCACCCTCCTCCTC");
}

double calcSimScore(string str1, string str2)
{
int i;
int count = 0;

if (str1.length() == str2.length())
{
for (i = 0; i < str1.length(); i++)
{
string s1 = str1.substr(i, 1);
string s2 = str2.substr(i, 1);
if (s1 != s2)
{
count++;
}
}

if (str1.length() - count == 0)
{
cout << 1 << endl;
}
else
{
float str = str1.length() - count;
float len = str1.length();
float simScore = str / len;
cout << simScore << endl;
}
}
else
{
cout << 0;
}
}

我在 CodeRunner 上得到的输出是:

0.3157893.22526e-319

最佳答案

user4581301 是对的。你在做什么 not returning a value from your non-void function is actually undefined behavior :

Flowing off the end of a function [...] results in undefined behavior in a value-returning function.

未定义的行为,如果您还没有遇到的话 literally permits anything to happen ,包括出现工作或打印一些奇怪的结果。

关于c++ - 关于 0 出现在我在 CodeRunner 中的输出下的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58139735/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com