Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
mforce
0 / 0 / 0
Регистрация: 27.10.2009
Сообщений: 4
#1

Циклы if-else внутри do-while не выполняются - C++

27.10.2009, 20:59. Просмотров 1939. Ответов 6
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
     string b="senosenosenosenoigolkasenosenoigolkasenosenoseno";
     int bsize=b.size();
     int sum=0;
     int i=0;
     do {if (b[i]=101) {sum=sum+1;i=i+1;} else i++;}
     while (i<=bsize);
     cout<<sum;
}

Ответ выдает: 49
Мне нужно посчитать кол-во букв s. Объясните, почему не получается и покажите правильный способ (используя базовые функции (до сложных не дошел еще)).Я пробовал различные комбинации. Но при любых из них оно игнорирует некоторые условия внутри других условий.
P.S. 101 это код буквы s. В string добавился пробел при отправке сообщения на форум.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2009, 20:59     Циклы if-else внутри do-while не выполняются
Посмотрите здесь:

Какие конструкции C++ выполняются не там, где написаны? C++
C++ Неправильно выполняются мат операции
В какой последовательности выполняются действия вычисления ошибки исходя из кода C++
Вложенные циклы. Переход внутри циклов C++
Не выполняются функции из отдельных файлов C++
Заменить в коде циклы for на циклы while C++
C++ Не выполняются программы на C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
manfeese
129 / 128 / 16
Регистрация: 04.01.2009
Сообщений: 415
27.10.2009, 21:08     Циклы if-else внутри do-while не выполняются #2
В условии if () используется оператор равенства ==, а не присваивания =
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1
27.10.2009, 21:29     Циклы if-else внутри do-while не выполняются #3
Цитата Сообщение от mforce Посмотреть сообщение
do {if (b[i]=101) {sum=sum+1;i=i+1;} else i++;}
а это правильно написано или я что то не понимаю в этом?Оо
manfeese
129 / 128 / 16
Регистрация: 04.01.2009
Сообщений: 415
27.10.2009, 21:55     Циклы if-else внутри do-while не выполняются #4
МедведЪ, правильно будет так
C++
1
if (b[i]==101)
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1
27.10.2009, 22:25     Циклы if-else внутри do-while не выполняются #5
manfeese, ну да,и я об этом думал
mforce
0 / 0 / 0
Регистрация: 27.10.2009
Сообщений: 4
28.10.2009, 01:24  [ТС]     Циклы if-else внутри do-while не выполняются #6
Большое спасибо.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2009, 08:07     Циклы if-else внутри do-while не выполняются
Еще ссылки по теме:

C++ Циклы внутри главной функции
Не выполняются действия плагина C++
Потоки не выполняются параллельно C++
Не выполняются все функции C++
C++ Функции внутри цикла не выполняются

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
M128K145
Эксперт C++
8280 / 3499 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
28.10.2009, 08:07     Циклы if-else внутри do-while не выполняются #7
mforce, стандартными функциями стринга
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
 
int main()
{
    std::string b = "senosenosenosenoigolkasenosenoigolkasenosenoseno";
    int sum = 0;
    size_t i = 0;
    do
    {
        i = b.find("s", i+1);
        ++sum;
    }while(i != -1);
    std::cout<<sum;
    std::cin.get();
}
Yandex
Объявления
28.10.2009, 08:07     Циклы if-else внутри do-while не выполняются
Ответ Создать тему
Опции темы

Текущее время: 19:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru