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/
答案 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(),其他方法在技术上没有任何错误。