С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/25: Рейтинг темы: голосов - 25, средняя оценка - 4.56
29 / 28 / 8
Регистрация: 06.10.2012
Сообщений: 133
1

Счетчик операций в цикле do-while

12.10.2012, 23:52. Показов 4575. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Счетчик операций i выдает нереально завышенные цифры: всего 4 преобразования - как будто 15 операций в цикле произошло. Как его на работу славную настроить, на дела хорошие?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include "std_lib_facilities.h"
 
int main () {
    
    char temp_letter;
    char small = 'a';
    char capital = 'A';
 
    int i=0, sum=0;
    do { 
        cout << " Введите любую букву: " << '\n';
        cin >> temp_letter;
        
        if ((temp_letter >='a')&&(temp_letter<='z')){
            small=temp_letter;
            capital=small-32;
        cout << " Строчная в заглавную: " << capital << '\n';
        }
        
        else if ((temp_letter >='A')&&(temp_letter<='Z')){
            capital=temp_letter;
            small=capital+32;
        
        cout << " Заглавная в строчную: " << small << '\n';
        }
        else void();
        ++i;
        sum+=i;
    } while (temp_letter!='.'); 
    cout << " Счетчик операций: " << sum << '\n'; // выдает ошибочное значение 
    
 return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Блог
12.10.2012, 23:52
Ответы с готовыми решениями:

Не работает счетчик операций
Всем доброго вечера,может кто помочь? Изначально было задание переписать программу из паскалая в...

Счетчик в цикле for
Проблему уже решил.

Нужно вставить счетчик операций в программу
Здравствуйте товарищи программеры тут такая ситуация Есть уже написанная прога Единственно в...

Не определен счетчик в цикле for
Подскажите пожалуйста, в чем ошибка? Выдает ошибку &quot;идентификатор i не определен&quot;. int *mas =...

11
38 / 38 / 4
Регистрация: 03.09.2011
Сообщений: 279
12.10.2012, 23:56 2
Проверьте счетчик брейкпоинтом, и кстати, не по теме, std_lib_facilities включает в себя iostream
1
2337 / 1825 / 753
Регистрация: 27.07.2012
Сообщений: 5,400
12.10.2012, 23:59 3
C++
1
2
3
4
5
//....
        ++i;
        sum+=i;
// ...
    cout << " Счетчик операций: " << sum << '\n'; // выдает ошибочное значение
Что-то мне подсказывает, что счётчик операций не sum, а i. sum же в алгебраической прогрессии увеличивается каждый цикл.
1
castaway
13.10.2012, 00:02
  #4

Не по теме:

Интересная конструкция. Надо запомнить.

Цитата Сообщение от cin_cout Посмотреть сообщение
C
1
else void();

0
38 / 38 / 4
Регистрация: 03.09.2011
Сообщений: 279
13.10.2012, 00:02 5
Да,John Prick прав, вы делаете ++i и потом sum=sum+i, то есть к сумме вы каждый раз прибавляете ту же сумму большую на 1. Вы переменную sum вообще уберите, она не нужна, вам достаточно i
1
29 / 28 / 8
Регистрация: 06.10.2012
Сообщений: 133
13.10.2012, 00:06  [ТС] 6
Цитата Сообщение от lazybiz Посмотреть сообщение

Не по теме:

Интересная конструкция. Надо запомнить.

Инновация?
1
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
13.10.2012, 00:08 7
Цитата Сообщение от cin_cout Посмотреть сообщение
Инновация?
Обфускация.
1
38 / 38 / 4
Регистрация: 03.09.2011
Сообщений: 279
13.10.2012, 00:09 8
Кстати да, что делает else void() ? Ничего?
0
29 / 28 / 8
Регистрация: 06.10.2012
Сообщений: 133
13.10.2012, 00:15  [ТС] 9
Цитата Сообщение от Vidok Посмотреть сообщение
Кстати да, что делает else void() ? Ничего?
Ничего.
0
38 / 38 / 4
Регистрация: 03.09.2011
Сообщений: 279
13.10.2012, 00:19 10
Тогда уберите эту строку, она вам не нужна. Или обработайте нормально третий вариант ввода, то есть если было введено не то и не то, если у вас имеется третий вариант)
1
29 / 28 / 8
Регистрация: 06.10.2012
Сообщений: 133
13.10.2012, 00:26  [ТС] 11
Цитата Сообщение от lazybiz Посмотреть сообщение
Обфускация.

Не по теме:

Не на ту я дорожку встал...

1
Модератор
Эксперт по электронике
8950 / 6716 / 921
Регистрация: 14.02.2011
Сообщений: 23,710
13.10.2012, 00:45 12
Цитата Сообщение от cin_cout Посмотреть сообщение
cin >> temp_letter;
if ((temp_letter >='a')&&(temp_letter<='z')){
small=temp_letter;
capital=small-32;
cout << " Строчная в заглавную: " << capital << '\n';
}
else if ((temp_letter >='A')&&(temp_letter<='Z')){
capital=temp_letter;
small=capital+32;
cout << " Заглавная в строчную: " << small << '\n';
я правильно понял что ты Из БОЛЬШИХ маленкие буквы делаешь и наоборот??
тогда гораздо проще
C++
1
 capital=temp_letter^0x20;
а если с проверкой что только буквы
то можно так
C++
1
2
3
4
5
6
7
8
9
if ((temp_letter >='A')&&(temp_letter<='z')&&(temp_letter!=0x60))
{
if(temp_letter&0x20==0)
   cout << " Заглавная в строчную: "; 
else
 cout << " Строчная в заглавную: " ;
 letter=temp_letter^0x20;
  cout << letter << '\n';
 }
ибо различаются они( для латинского алфавита) 6 битом
1
13.10.2012, 00:45
BasicMan
Эксперт
19315 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
Блог
13.10.2012, 00:45
Помогаю со студенческими работами здесь

Счетчик указателя в цикле
Посмотрите пожалуйста почему у меня указатель не увеличивает массив на одну градацию, т.е при...

Как сделать счетчик в цикле?
как сделать счетчик в цыкле таким образом чтобы он был 1 1 1 2 2 2 3 3 3 4 4 4 итд

Табуляция функции в цикле while-не обновляется счетчик
Работаю в Borland C++ Попробовал запустить программу-таблица выводится бесконечно с одними и теми...

Наследование, счетчик, перегрузка операций: К префиксным операциям нет доступа
обычный счетчик с уровнями наследования. почему-то к префиксным операциям нет доступа. в чем дело?...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru