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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
cin_cout
26 / 26 / 7
Регистрация: 06.10.2012
Сообщений: 119
#1

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

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

Счетчик операций 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2012, 23:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Счетчик операций в цикле do-while (C++):

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

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

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

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

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

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

11
Vidok
37 / 37 / 2
Регистрация: 03.09.2011
Сообщений: 279
12.10.2012, 23:56 #2
Проверьте счетчик брейкпоинтом, и кстати, не по теме, std_lib_facilities включает в себя iostream
1
John Prick
801 / 734 / 145
Регистрация: 27.07.2012
Сообщений: 2,107
Завершенные тесты: 3
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
Vidok
37 / 37 / 2
Регистрация: 03.09.2011
Сообщений: 279
13.10.2012, 00:02 #5
Да,John Prick прав, вы делаете ++i и потом sum=sum+i, то есть к сумме вы каждый раз прибавляете ту же сумму большую на 1. Вы переменную sum вообще уберите, она не нужна, вам достаточно i
1
cin_cout
26 / 26 / 7
Регистрация: 06.10.2012
Сообщений: 119
13.10.2012, 00:06  [ТС] #6
Цитата Сообщение от lazybiz Посмотреть сообщение

Не по теме:

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

Инновация?
1
castaway
Эксперт С++
4884 / 3019 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
13.10.2012, 00:08 #7
Цитата Сообщение от cin_cout Посмотреть сообщение
Инновация?
Обфускация.
1
Vidok
37 / 37 / 2
Регистрация: 03.09.2011
Сообщений: 279
13.10.2012, 00:09 #8
Кстати да, что делает else void() ? Ничего?
0
cin_cout
26 / 26 / 7
Регистрация: 06.10.2012
Сообщений: 119
13.10.2012, 00:15  [ТС] #9
Цитата Сообщение от Vidok Посмотреть сообщение
Кстати да, что делает else void() ? Ничего?
Ничего.
0
Vidok
37 / 37 / 2
Регистрация: 03.09.2011
Сообщений: 279
13.10.2012, 00:19 #10
Тогда уберите эту строку, она вам не нужна. Или обработайте нормально третий вариант ввода, то есть если было введено не то и не то, если у вас имеется третий вариант)
1
cin_cout
26 / 26 / 7
Регистрация: 06.10.2012
Сообщений: 119
13.10.2012, 00:26  [ТС] #11
Цитата Сообщение от lazybiz Посмотреть сообщение
Обфускация.

Не по теме:

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

1
ValeryS
Модератор
6653 / 5062 / 470
Регистрация: 14.02.2011
Сообщений: 16,930
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.10.2012, 00:45
Привет! Вот еще темы с ответами:

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

Наследование, счетчик, перегрузка операций: К префиксным операциям нет доступа - C++
обычный счетчик с уровнями наследования. почему-то к префиксным операциям нет доступа. в чем дело? #include &quot;stdafx.h&quot; #include...

Почему счетчик в цикле for начинается с нуля, а не с единицы? - C++
привет. почему когда надо сделать какое-то действие, например 4 раза, то пишут: for (int i=0, i&lt;4, i++) { //... } а не так: ...

Объявляется ли каждую итерацию переменная-счетчик в цикле for? - C++
Всем привет, расскажу историю возникшего вопроса. Отходил я как-то на курсы с++, и там преподаватель (авторитетный вроде программист,...


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

Или воспользуйтесь поиском по форуму:
12
Yandex
Объявления
13.10.2012, 00:45
Ответ Создать тему
Опции темы

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