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

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

Войти
Регистрация
Восстановить пароль
 
Golovastik
11 / 11 / 0
Регистрация: 25.05.2009
Сообщений: 435
#1

Вопрос по мелочи - C++

23.07.2009, 20:07. Просмотров 502. Ответов 8
Метки нет (Все метки)

Здравсвуйте! Когда-то , недавно, мы обсуждали тему среднее арифметическое числа. Я вроде понял её, но есть маленький нюанс. Вот код:
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
#include <iostream>
using namespace std;
 
int main()
{
setlocale(0,"");
int i = 0; 
double s = 0.0, vvod;
char indicator = 'y';
while((indicator == 'y') || (indicator == 'Y') || (indicator == 'yes'))
{
    cout<<endl<<"Введите пожалуйста Хатабыч -> ";
    cin>>vvod;
    ++i;
    s +=vvod;
    cout<<endl<<"Продолжить ещё разок?" <<endl;
        
    cin>>indicator;
}
cout<<"Средднее из "<<i<<" введённых значений = "<<s/i<<endl;
cin.ignore();
cin.get();
return 0;
}
Почему, не работает 3 условие в цикле вайл indicator == 'yes'
И почему обязательно нужно присваивать char indicator = 'y' или char indicator = 'Y', но char indicator = 'yes' не работает; Тоесть обязательно присваивать переменной индикатор именно один из символов, которые я использую в условии цикла вайл? Если не присвоить, работать не будет. И почему не работает 3 условие. Зараннее благодарю
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.07.2009, 20:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вопрос по мелочи (C++):

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

include и некоторые мелочи - C++
Вот код моей первой программы на C++: #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main () { cout &lt;&lt;...

Подскажите, в тесте некоторые мелочи - C++
Укажите формат описания массива: а)тип_элемента имя б)тип_элемента имя В программе...

Вопрос по массивав, "институтский" вопрос. - C++
Готовлюсь к летней сессии по программированию. С++ Есть такая вот задачка (привожу как есть) В документации подобного не...

мелочи - Pascal
Ребят,что кто знает(( 1)Дано трехзначное число.Используя одну операцию деления нацело,вывести первую цифру данного числа(сотни) ...

Мелочи... - Delphi
Всем привет. Можете пжл рассказать зачем, для чего и что делают: 1. resourcestring Пример: resourcestring sUntitled = 'Noname'; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
23.07.2009, 20:09 #2
'yes'-считает как один символ.Нужно "yes".
0
Gravity
562 / 556 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
23.07.2009, 20:14 #3
Цитата Сообщение от Golovastik Посмотреть сообщение
char indicator = 'yes' не работает
Когда дойдешь до изучения символьных массивов и С-строк, истина откроется тебе.
0
Golovastik
11 / 11 / 0
Регистрация: 25.05.2009
Сообщений: 435
23.07.2009, 20:16  [ТС] #4
Если написать так,тоже те же проблеммы остаются.
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
#include <iostream>
using namespace std;
 
int main()
{
setlocale(0,"");
int i = 0; 
double s = 0.0, vvod;
string indicator;
while((indicator == "y") || (indicator == "Y") || (indicator == "yes"))
{
    cout<<endl<<"Введите пожалуйста Хатабыч -> ";
    cin>>vvod;
    ++i;
    s +=vvod;
    cout<<endl<<"Продолжить ещё разок?" <<endl;
        
    cin>>indicator;
}
cout<<"Средднее из "<<i<<" введённых значений = "<<s/i<<endl;
cin.ignore();
cin.get();
return 0;
}
0
Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
23.07.2009, 20:21 #5
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
// Test.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <conio.h>
#include <iomanip>
#include <iostream>
#include <math.h>
#include<memory> // std auto_ptr
#include<limits>//numeric_limits
#include <iostream>
using namespace std;
 
int main()
{
    setlocale(0,"");
    int i = 0; 
    double s = 0.0, vvod;
    char *indicator=":)";
    while((indicator == "y") || (indicator == "Y") || (indicator == "yes"))
    {
        cout<<endl<<"Введите пожалуйста Хатабыч -> ";
        cin>>vvod;
        ++i;
        s +=vvod;
        cout<<endl<<"Продолжить ещё разок?"     <<endl;
 
        cin>>indicator;
    }
    cout<<"Средднее из "<<i<<" введённых значений = "<<s/i<<endl;
    cin.ignore();
    cin.get();
    return 0;
}
Так ?
P.s Лучше и проше оформить через
C++
1
2
3
do
{
}while
1
ISergey
Maniac
Эксперт С++
1374 / 885 / 52
Регистрация: 02.01.2009
Сообщений: 2,658
Записей в блоге: 1
23.07.2009, 20:45 #6
C++
1
indicator == "yes"
Так нельзя сравнивать( так как indicator - char* ).
Вместо
C++
1
char *indicator="y";
пиши
C++
1
std::string indicator = "y";
PS. подключи #include <string>;

Цитата Сообщение от Sekt
P.s Лучше и проше оформить через
C++
1
2
3
do
{
}while
1
Golovastik
11 / 11 / 0
Регистрация: 25.05.2009
Сообщений: 435
23.07.2009, 22:34  [ТС] #7
Прошу прощения, попробывал так. Это правильно или нет?
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
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
setlocale(0,"");
int i = 0; 
double s = 0.0, vvod;
 
string indicator;
do
{
    cout<<endl<<"Введите пожалуйста Ахмед -> ";
    cin>>vvod;
    ++i;
    s +=vvod;
    cout<<endl<<"Продолжить ещё разок?" <<endl;
        
    cin>>indicator;
}while((indicator == "y") || (indicator == "Y") || (indicator == "yes"));
 
cout<<"Средднее из "<<i<<" введённых значений = "<<s/i<<endl;
cin.ignore();
cin.get();
return 0;
}
0
Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
24.07.2009, 18:26 #8
Да все верно.
C++
1
cout<<endl<<"Продолжить ещё разок?" "Если да введите y,Y или yes"<<endl; // любой другой символ обрубает ввод и выводит среднее из введенных
Комменти а то никто не поймет.
0
Alexandoros
228 / 66 / 4
Регистрация: 02.06.2009
Сообщений: 280
24.07.2009, 18:42 #9
Цитата Сообщение от Golovastik Посмотреть сообщение
Прошу прощения, попробывал так. Это правильно или нет?
Ты знаеш что такое дебугер?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.07.2009, 18:42
Привет! Вот еще темы с ответами:

Нужна помощь в мелочи - Delphi
Как написать степенное выражение. Такую нелепость забыла, например число е в степени х?:)

Полезные мелочи к iPhone - iPhone
В последнее время понял, что мне требуется некоторая переферия к моему агрегату (iPhone5с) - такая мелочёвка, которая облегчает жизнь -...

Мелочи и последние штрихи [Квери] - Delphi БД
Если из БД удалить все поля то даёт ошибку , я хочу сделать как-то так, оно конечно не работает :( Помогите плз выровнять if...

Разъясните простые мелочи ассемблера - Assembler
Всем привет. Пролейте пожалуйста кто ни будь свет на эти несколько вопросов которые я недопонимаю. А то они часто на онлайн...


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

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

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