Это первая программа на C++, которую я когда-либо писал, и мне трудно понять порядок, в котором должны быть помещены операнды. Это для класс, но похоже, что я не должен использовать тег домашней работы. Извините, если я делаю это неправильно.Программа, в которую пользователь вводит строку, и программа подсчитывает экземпляры букв
Это мой вход
// Get DNA string
string st;
cout << "Enter the DNA sequence to be analysed: ";
cin >> st;
Это, кажется, работает нормально, но я думал, я бы включил его упаковывают это то, что я делаю неправильно.
Это то, что я до сих пор проверял, что входной сигнал является исключительно C, T, A или G. Он проходит через программу и просто печатает «Пожалуйста, введите действительный sequnce1, введите действующую последовательность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 одной из букв s. Как это сделать? Кажется, я не могу положить конец; в любом месте, не получив ошибку, хотя я знаю, что мне это нужно.
Любая помощь или советы, указывающие мне в правильном направлении, были бы весьма полезными - Я работаю над этим кодом в течение двух дней (это неловко признаться).
Edit:
Моя последовательность проверки будет выглядеть так:
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;
Your для петель не хватает первой части. – chris
Этот код не компилируется, и даже если он и сделал, он не делает то, что вы утверждаете. –
Я не утверждаю, что он что-то делает! Я прошу о помощи. Сейчас он компилируется для меня, но это двойной счет моих gs, я отредактирую свой пост через минуту. – stringgy