【发布时间】:2021-03-24 03:39:15
【问题描述】:
我只需要一些帮助来除以字符串/DNA 链中 Gs 和 Cs 的计数器,然后将它们除以 DNA 链的长度,得到一个双倍表示字符串中 Cs 和 Gs 的百分比。但是,当我将计数器除以 DNA.length() 时,它返回 0。它并没有给我实际的答案/乘积。请帮忙!!
#include <iostream>
#include<string>
using std::string; using std::cout; using std::endl; using std::cin;
double get_gc_content(const string& dna)
{
int counter = 0;
for(std::size_t i = 0; i < dna.size();++i)
{
if(char(dna[i]=='C') || char(dna[i]=='G'))
{
counter++;
// cout<<counter<<endl;
}
}
cout<<counter<<endl;
double gc_content = counter / dna.length();
return gc_content;
}
int main()
{
std::string dna = "ACCGCAAATT";
double gc_count;
gc_count = get_gc_content(dna);
cout<<gc_count<<endl;
return 0;
}
【问题讨论】:
-
double gc_content = counter / dna.length();-- 一个整数除以一个整数会得到一个整数。 -
这并没有解决问题,但在
if语句中去掉了那些char演员表。if (dna[i] == 'C' || dna[i] == 'G')就是你所需要的。