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

I am trying to compile this code please review

本文关键字:代码 编译      更新时间:2023-10-16
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/problem/hamm/

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

#include <iostream>
#include <string>

不过,您需要格式化代码。事实上,很难阅读,在一个常规的生产规模的项目中,这是不可能的。我也不建议使用"使用命名空间 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((。