Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
mforce
0 / 0 / 0
Регистрация: 27.10.2009
Сообщений: 4
#1

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

27.10.2009, 20:59. Просмотров 2629. Ответов 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 добавился пробел при отправке сообщения на форум.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2009, 20:59
Ответы с готовыми решениями:

Функции внутри цикла не выполняются
Здравствуйте! Почему-то не работают функции внутри цикла (конечное значение...

Циклы внутри главной функции
Здравствуйте. Помогите новичку с решением задачи. Необходимо создать массив...

Вложенные циклы. Переход внутри циклов
Здравствуйте.Вопрос такой.У меня в программе в одной из функции есть поиск...

Не выполняются циклы
Здравствуйте! Товарищи! Помогите пожалуйста! В чём может быть проблема. На...

Delphi7. Не выполняются циклы
Здравствуйте! Имеется программа, состоящая из 2х основных циклов и группы...

6
manfeese
131 / 130 / 29
Регистрация: 04.01.2009
Сообщений: 415
27.10.2009, 21:08 #2
В условии if () используется оператор равенства ==, а не присваивания =
1
AnonymC
1178 / 461 / 86
Регистрация: 23.06.2009
Сообщений: 6,374
Завершенные тесты: 1
27.10.2009, 21:29 #3
Цитата Сообщение от mforce Посмотреть сообщение
do {if (b[i]=101) {sum=sum+1;i=i+1;} else i++;}
а это правильно написано или я что то не понимаю в этом?Оо
0
manfeese
131 / 130 / 29
Регистрация: 04.01.2009
Сообщений: 415
27.10.2009, 21:55 #4
МедведЪ, правильно будет так
C++
1
if (b[i]==101)
0
AnonymC
1178 / 461 / 86
Регистрация: 23.06.2009
Сообщений: 6,374
Завершенные тесты: 1
27.10.2009, 22:25 #5
manfeese, ну да,и я об этом думал
0
mforce
0 / 0 / 0
Регистрация: 27.10.2009
Сообщений: 4
28.10.2009, 01:24  [ТС] #6
Большое спасибо.
0
M128K145
Эксперт JavaЭксперт С++
8322 / 3542 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
28.10.2009, 08:07 #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();
}
0
28.10.2009, 08:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2009, 08:07

Не выполняются циклы в Lazarus
Доброго времени суток, возникла проблема при выполнении кода while not...

циклы for внутри while
у меня есть несколько циклов for внутри цикла while, при этом если в качестве...

Циклы задание внутри
del Задание Вариант del Помогите решить пожалуйста многоуважаемые...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru