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

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

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

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

12.10.2012, 23:52. Просмотров 1253. Ответов 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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vidok
37 / 37 / 2
Регистрация: 03.09.2011
Сообщений: 279
12.10.2012, 23:56     Счетчик операций в цикле do-while #2
Проверьте счетчик брейкпоинтом, и кстати, не по теме, std_lib_facilities включает в себя iostream
John Prick
773 / 706 / 129
Регистрация: 27.07.2012
Сообщений: 2,022
Завершенные тесты: 3
12.10.2012, 23:59     Счетчик операций в цикле do-while #3
C++
1
2
3
4
5
//....
        ++i;
        sum+=i;
// ...
    cout << " Счетчик операций: " << sum << '\n'; // выдает ошибочное значение
Что-то мне подсказывает, что счётчик операций не sum, а i. sum же в алгебраической прогрессии увеличивается каждый цикл.
castaway
13.10.2012, 00:02
  #4

Не по теме:

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

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

Vidok
37 / 37 / 2
Регистрация: 03.09.2011
Сообщений: 279
13.10.2012, 00:02     Счетчик операций в цикле do-while #5
Да,John Prick прав, вы делаете ++i и потом sum=sum+i, то есть к сумме вы каждый раз прибавляете ту же сумму большую на 1. Вы переменную sum вообще уберите, она не нужна, вам достаточно i
cin_cout
26 / 26 / 7
Регистрация: 06.10.2012
Сообщений: 119
13.10.2012, 00:06  [ТС]     Счетчик операций в цикле do-while #6
Цитата Сообщение от lazybiz Посмотреть сообщение

Не по теме:

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

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

Не по теме:

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

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.10.2012, 00:45     Счетчик операций в цикле do-while
Еще ссылки по теме:
C++ Почему счетчик в цикле for начинается с нуля, а не с единицы?
Объявляется ли каждую итерацию переменная-счетчик в цикле for? C++
C++ Наследование, счетчик, перегрузка операций: К префиксным операциям нет доступа
Вставить между цифрами 1, 2,..., 8, 9 в данном порядке, знак одной из 4-х арифметических операций так, чтобы результат восьми послед-х операций =100 C++
C++ Счетчик С++

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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6542 / 5008 / 461
Регистрация: 14.02.2011
Сообщений: 16,654
13.10.2012, 00:45     Счетчик операций в цикле do-while #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 битом
Yandex
Объявления
13.10.2012, 00:45     Счетчик операций в цикле do-while
Ответ Создать тему
Опции темы

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