这是我编写的第一个 C++ 程序,我无法理解必须放入操作数的顺序。这是一个类,但看起来我不应该使用 homework 标记。对不起,如果我做错了。
这是我的输入
// Get DNA string
string st;
cout << "Enter the DNA sequence to be analysed: ";
cin >> st;
这似乎工作正常,但我想我会包括它,以防这是我做错了。
到目前为止,这是我要检查输入是否完全是 C、T、A 或 G。它通过程序运行并简单地打印“请输入有效的序列 1,请输入有效的序列 2,……等等。我我确定我在做一些非常愚蠢的事情,我就是想不通。
// Check that the sequence is all C, T, A, G
while (i <= st.size()){
if (st[i] != 'c' && st[i] != 'C' && st[i] != 'g' && st[i] != 'G' && st[i] != 't' && st[i] != 'T' && st[i] != 'a' && st[i] != 'A');
cout << "Please enter a valid sequence" <<
i++;
else if (st[i] == c,C,G,t,T,a,A)
i++;
我程序的后半部分是统计序列中Cs和Gs的个数
for (i < st.size() ; i++ ;);
for (loop <= st.size() ; loop++;)
if (st[loop] == 'c')
{
count_c++;
}
else if (st[loop] == C)
{
count_c++;
}
else if (st[loop] == g)
{
count_g++;
}
else if (st[loop] == G);
{
count_g++;
}
cout << "Number of instances of C = " << count_c;
cout << "Number of instances of G = " << count_g;
看起来它没有循环,它会计算其中一个字母的 1。我如何让它循环?我似乎无法输入 endl; 任何地方都不会出现错误,尽管我知道我会在某个地方需要它。
任何帮助或提示我正确的方向将不胜感激 - 我已经在这段代码上工作了两天(承认这很尴尬)。
编辑 :
我的序列检查器现在看起来像这样:
while (i < st.size() ) {
if (st[i] != c && st[i] != C && st[i] != g && st[i] !=G && st[i] !=t && st[i] !=T && st[i] !=a && st[i] != A)
cout << "Please enter a valid sequence" << "\n" << "\n";
i++;
}
我的柜台看起来像这样:
// Count the number of Cs and Gs
count_c = 0;
count_g = 0;
for (i = 0; i < st.size() ; i++) {
if ((st[i] == 'c') || (st[i] == 'C'))
count_c++;
else if ((st[i] == 'g')|| (st[i] == 'G'));
count_g++;
}
cout << "Number of instances of C = " << count_c;
cout << "Number of instances of G = " << count_g;