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

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

Войти
Регистрация
Восстановить пароль
 
 
Alejo
0 / 0 / 0
Регистрация: 26.09.2012
Сообщений: 38
#1

Условие выполнения цикла - C++

26.09.2012, 23:00. Просмотров 1030. Ответов 25
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream.h>
void main()
{
    char a;
    int r=1;
    cin>>a;
    if(a==r)
    {
        cout<<"test"<<endl;
    }
    if(a=='k')
    {
        cout<<"apple"<<endl;
    }
}
Если вводимое мною значение равно k, то выдает apple, но если я ввожу единицу, слово test не выдает. Как это исправить ?
ps функцию написал для примера, важно что бы переменная "а" могла быть символом или числом и в цикле if условием было равенство этой переменной с другой переменной (простое число от 0 до 36).
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2012, 23:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Условие выполнения цикла (C++):

Условие цикла while - C++
Не как не соображу как сделать переменную int sh; и потом при диалоге с пользователем проверить что он ввел именно инт а не чар потому...

Объяснить условие цикла while - C++
&lt;#include &lt;fstream&gt; using namespace std; #define FILENAME_1 &quot;file_1.txt&quot; #define FILENAME_2 &quot;file_2.txt&quot; int main() { ...

Условие для цикла С++ - C++
Доброго всем времени суток! Помогите пожалуйста человеку который только начал открывать для себя С++ Задача следующая: необходимо...

Условие прерывания цикла - C++
Из-за чего происходит(условие прерывания) выход из цикла? Мои предположения что пока b не равно 0, то цикл выполняется, как только...

Не работает условие цикла - C++
Здравствуйте! Есть программа: #include &lt;iostream&gt; using namespace std; main () { setlocale (0,&quot;&quot;); float a, b, d; ...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ValeryS
Модератор
6631 / 5039 / 466
Регистрация: 14.02.2011
Сообщений: 16,847
26.09.2012, 23:44 #16
alsav22,
а у тебя после этого
Цитата Сообщение от alsav22 Посмотреть сообщение
int a = atoi(str);
разве получится это сравнение
Цитата Сообщение от alsav22 Посмотреть сообщение
else if(a == 'k')
тем более с символом сравниваешь

самое простое
Цитата Сообщение от alsav22 Посмотреть сообщение
int r = rand() % 37;
вот это в строку перевести
"я же уже выступал"(с)
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.09.2012, 23:48 #17
Цитата Сообщение от ValeryS Посмотреть сообщение
alsav22,
а у тебя после этого
Сообщение от alsav22
int a = atoi(str);
разве получится это сравнение
Сообщение от alsav22
else if(a == 'k')
тем более с символом сравниваешь
Не получится. Я только для вывода test предложил.
0
Alejo
0 / 0 / 0
Регистрация: 26.09.2012
Сообщений: 38
26.09.2012, 23:54  [ТС] #18
Цитата Сообщение от ValeryS Посмотреть сообщение
alsav22,
а у тебя после этого

разве получится это сравнение

тем более с символом сравниваешь

самое простое

вот это в строку перевести
"я же уже выступал"(с)
Работает только для цифровых значений. Это мне не подходит, мне нужно что бы я мог задать переменной значение символа (одного) или цифры.
0
ValeryS
Модератор
6631 / 5039 / 466
Регистрация: 14.02.2011
Сообщений: 16,847
26.09.2012, 23:59 #19
Цитата Сообщение от Alejo Посмотреть сообщение
Работает только для цифровых значений. Это мне не подходит, мне нужно что бы я мог задать переменной значение символа (одного) или цифры.
Ты мое сообщение внимательно читал?
хоть один символ хоть сто
работай со строками
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
27.09.2012, 00:01 #20
Цитата Сообщение от Alejo Посмотреть сообщение
или цифры.
Цифры или числа?
0
ValeryS
Модератор
6631 / 5039 / 466
Регистрация: 14.02.2011
Сообщений: 16,847
27.09.2012, 00:02 #21
Цитата Сообщение от Alejo Посмотреть сообщение
цифры
цифры или числа?
цифра это 0 1 2 3 4 5 6 7 8 9(хотя это тоже может быть числом)
а тебе надо 37 это уже число
и ввести ты его можешь или в int (тогда прощай символы) или в строку
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
27.09.2012, 00:05 #22
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 <cstdlib>
#include <iostream>
#include <sstream>
#include <string>
#include <time.h>
using namespace std;
 
int main()
{
 srand(time(0));
 int r = rand() % 37;
 cout << r << endl;
 stringstream s;
 s << r;
 string str;
 s >> str;
 cout << str << endl;
 string a;
 cin >> a;
 
 if(a == str) cout << "test" << endl;
 else if(a == "k") cout << "apple" << endl;
      else cout << "Error" << endl;
      
   system("pause");
   return 0;   
}
0
Alejo
0 / 0 / 0
Регистрация: 26.09.2012
Сообщений: 38
27.09.2012, 00:13  [ТС] #23
Цитата Сообщение от ValeryS Посмотреть сообщение
цифры или числа?
цифра это 0 1 2 3 4 5 6 7 8 9(хотя это тоже может быть числом)
а тебе надо 37 это уже число
и ввести ты его можешь или в int (тогда прощай символы) или в строку
Мне нужно число, состоящее из одной или двух цифр, я же ранее писал (0-36).
Работать со строками ? На той странице, ссылку на которую ты отправлял ранее, я для себя не нашел информации, ее там слишком мало, а я новичок в делах программирования, мне бы чего попроще

Переписал функцию, вот так получается:
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
#include <cstdlib>
#include <iostream>
#include <time.h>
using namespace std;
 
int main()
{
 int z;
 srand(time(0));
 int r = rand() % 37;
 cout << r << endl;
 char str[4];
 cin >> str;
 if(*str=='k')
 {
     cout<<"apple"<<endl;
     z=1;
 }
 if(z!=1)
 {
 int a = atoi(str);
 if(a == r)
 {
     cout << "test" << endl;
 }
 else 
 {
     cout << "Error" << endl;
 }
 }
   system("pause");
   return 0;   
}
но это слишком грубо, нужно что попроще, поменьше и попонятнее.

Добавлено через 3 минуты
alsav22, Вот это уже работает, только я половины кода не понимаю. Не мог бы ты оставить комментарии к этой части:
C++
1
2
3
4
5
6
7
 stringstream s;
 s << r;
 string str;
 s >> str;
 cout << str << endl;
 string a;
 cin >> a;
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
27.09.2012, 00:19 #24
C++
1
2
3
4
5
6
7
 stringstream s; // поток для строк
 s << r; // туда число
 string str;
 s >> str; // оттуда строка
 cout << str << endl;
 string a;
 cin >> a;
Достаточно?
1
Andrew_Lvov
Эксперт С++
259 / 189 / 5
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
27.09.2012, 00:19 #25
Если в первый if() ты не попадёшь, какое значение будет у z ?
0
Alejo
0 / 0 / 0
Регистрация: 26.09.2012
Сообщений: 38
27.09.2012, 00:23  [ТС] #26
Цитата Сообщение от alsav22 Посмотреть сообщение
Достаточно?
Благодарю. Дальше смогу сам разобраться.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.09.2012, 00:23
Привет! Вот еще темы с ответами:

Логическое условие И и ИЛИ цикла do while - C++
Товарищи, доброго дня! Я что-то не понимаю, почему при вот таком коде, нажимая на 0 или 1 не выйти из программы: ...

Не выполняется условие вложенного цикла - C++
Отладчик показывает что не выполняется условие цикла по j. В чем косяк? /* Вывести простые числа в заданном диапазоне */ ...

Условие для прекращения цикла - C++
Имеется задача: Ввести двоичный код и перевести его в десятичный. Имеется подсказка для решения задачи: использовать деление и деление с...

Как пропустить условие цикла - C++
Есть небольшой код: #include &lt;iostream&gt; int main() { using namespace std; setlocale(LC_ALL,&quot;Russian&quot;); int n = 0; ...


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

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

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