我正在尝试编译此代码,请查看

时间:2017-06-20 01:24:09

标签: c++

using namespace std;

int main()
{
string dna1;

getline(cin, dna1);

string dna2;

getline(cin, dna2);

int hammingDistance=0;

for (int i=0; i < dna1.length(); ++i) {

if (dna1[i] !=dna2[i]) {

hammingDistance++;

}

}

cout <<"HammingDistance is: " << hammingDistance << '\n’;

}
  

所以这是我编译的代码,但似乎有一些错误,这是来自Rosalind的网站,我在其中添加了以下链接:http://rosalind.info/problems/hamm/

1 个答案:

答案 0 :(得分:2)

正如Michael Roy评论的那样,你错过了你需要的头文件,iostream和string。

#include <iostream>
#include <string>

您需要格式化代码。事实上,很难读懂,在常规的生产规模项目中,这是不可能的。我也不建议使用“using namespace std;”宣言。进入这是一个糟糕的初学习惯。

每个人都有自己的特定偏好,但这大致是您的代码应该是什么样的。

#include <iostream>
#include <string>

int main()
{
    std::string dna1;
    std::cin >> dna1;
    //getline(cin, dna1);

    std::string dna2;
    std::cin >> dna2;
    //getline(cin, dna2);

    int hammingDistance = 0;

    for (int i=0; i < dna1.length(); ++i) {
        if (dna1[i] != dna2[i]) {
            hammingDistance++;
        }
    }

    std::cout <<"HammingDistance is: " << hammingDistance << '\n';

    return 0;
}

我使用标准流方法来输入一致性,但是只要你不使用gets(),其他方法在技术上没有任何错误。