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

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

Войти
Регистрация
Восстановить пароль
 
Moroz-
0 / 0 / 1
Регистрация: 05.10.2012
Сообщений: 20
#1

случайным образом выбирается символ - C++

05.10.2012, 20:16. Просмотров 781. Ответов 11
Метки нет (Все метки)

Помогите пожалуйста!
.Случайным образом выбирается символ и пока не будет заданного слова (например END)- символы выводятся на экран
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
35
#include <clx.h>
#include <conio.h>
#include <math.h>
#include <iostream.h>
 
 
void SetRND(char ch[28]) 
{
   char kom[28]="qwertyuiopasdfghjklzxcvbnm";   /
   for(int i=0; i<1; i++) ch[i]=kom[rand() % 15];
   ch[1]=0;
 }
 
int main()
{
   byte i;
   string str[3] = {"e","n","d"};
   char ch[5];
   srand(time(0));
   i=1;
   while ( i == 3 )
    {
       SetRND(ch);
        {
        if (str[i]== ch);
          {cout << str[i]; ++i;}
           if (str[i] != ch);
            {cout << ch;}
           }
       }
 
   system("pause");
   return 0;
 
}
ф-ция получилась рабочая, она выдает один случайный символ. Но вот при сравнивание ничего не происходит. Все компилируется, но на экран выводиться: для продолжения нажмите любую клавишу...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2012, 20:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос случайным образом выбирается символ (C++):

Дата случайным образом - C++
Добрый вечер! Помогите пожалуйста написать программу, которая генерирует дату случайным образом в формате &quot;дд.мм.гггг&quot; Я буду очень...

Заполнить массив случайным образом - C++
Добрый день!!! Ребята, объясните пожалуйста, как выполнить такую задачу!!! По возможности, комментируйте каждое действие. Благодарен...

заполнение массива случайным образом - C++
Помогите на языке Си заполнить массив символов случайным образом символами с кодами в диапазоне от 21 до 254

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

В каждой строке выбирается элемент с наименьшим значением, затем среди этих чисел выбирается наибольшее - C++
помогите решить задачу на с++ Дана действительная матрица размером n x m, все элементы которой различны. В каждой строке выбирается...

В каждой строке матрицы выбирается элемент с наименьшим значением, затем среди этих чисел выбирается наибольшее - C++
Задание:. Дана действительная матрица размера mn, все элементы которой различны. В каждой строке выбирается элемент с наименьшим...

11
AnreyKazakov
Заблокирован
05.10.2012, 20:32 #2
Блин, понять не могу как у тебя в цикл заходит? I=1 и тут же сравнение I==3? ... Не понятно...
0
Moroz-
0 / 0 / 1
Регистрация: 05.10.2012
Сообщений: 20
05.10.2012, 20:35  [ТС] #3
подправил на
C++
1
2
char kom[28]="qwertyuiopasdfghjklzxcvbnm";
    ch[1]=kom[rand() % 15];
вообщем я рассчитывал, что ф-ция SetRND выдает 1 любой элемент. Далее в теле программы мы ее вызываем и дальше сравниваем
0
AnreyKazakov
Заблокирован
05.10.2012, 20:43 #4
Интересно, а как ты из функции значение возвращаешь?
0
Moroz-
0 / 0 / 1
Регистрация: 05.10.2012
Сообщений: 20
05.10.2012, 20:48  [ТС] #5
т.е.
C++
1
SetRND(ch);
не работает?
0
AnreyKazakov
Заблокирован
05.10.2012, 21:19 #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void SetRND(char &ch) 
{
   char kom[28]="qwertyuiopasdfghjklzxcvbnm";
   ch=kom[rand() % 15]; 
 }
 
int main()
{
   byte i;
   char str[4] = {'e','n','d'};
   char ch[4];
   srand(time(0));
   i=0;
   while ( i != 3 )
    {
       SetRND(ch[i]);
        cout << str[i];
        if (str[i]== ch[i]){++i;}
           
       }
 
   system("pause");
   return 0;}
Не люблю строки в стиле си, но что-то в этом духе должно получиться, не компилил, так что могут быть ошибки, не знаю даже можно ли передавать по ссылке таким образом, но так как ты не хотел в ретурне возвращать пусть так будет
1
Moroz-
0 / 0 / 1
Регистрация: 05.10.2012
Сообщений: 20
05.10.2012, 21:23  [ТС] #7
спасибо большое
еще вопрос, как сделали так, что 2 char'a сравнились, просто до этого пытался- выдавал ошибку
0
AnreyKazakov
Заблокирован
05.10.2012, 21:31 #8
Косячно сравнивал наверно, код покажи
0
Moroz-
0 / 0 / 1
Регистрация: 05.10.2012
Сообщений: 20
05.10.2012, 21:36  [ТС] #9
к примеру так
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
void SetRND(char ch[28]) // äåëГ*ГҐГ¬ êîìáèГ*Г*öèþ ГЁГ§ 4 Г§Г*Г*êîâ
{
   char kom[28]="qwertyuiopasdfghjklzxcvbnm";   //Г’ГіГІ òâîÿ êîìáèГ*Г*öèÿ Г§Г*Г*êîâ
   for(int i=0; i<1; i++) ch[i]=kom[rand() % 15];
   ch[1]=0;
 }
 
int main()
{byte i;
   char str[4] = {'e','n','d'};
   char ch[4];
   srand(time(0));
   i=0;
   while ( i != 3 )
    {
       SetRND(ch);
        cout << str[i];
        if (str[i]== ch){++i;}
 
       }
 
   system("pause");
   return 0;
 
}
0
AnreyKazakov
Заблокирован
05.10.2012, 22:01 #10
Не уверен можно ли так сравнивать, слева один символ str[i] , а справа не понятно ch скорее всего это набор символов, если было бы ch[i] . тогда чар чар сравнивание. Ну и у тебя непонятно как с функции здесь обратно передается. Return нет, и передается не по ссылке.
0
gecheim
14 / 14 / 3
Регистрация: 21.01.2012
Сообщений: 119
05.10.2012, 22:04 #11
Цитата Сообщение от Moroz- Посмотреть сообщение
к примеру так
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
void SetRND(char ch[28]) // äåëГ*ГҐГ¬ êîìáèГ*Г*öèþ ГЁГ§ 4 Г§Г*Г*êîâ
{
   char kom[28]="qwertyuiopasdfghjklzxcvbnm";   //Г’ГіГІ òâîÿ êîìáèГ*Г*öèÿ Г§Г*Г*êîâ
   for(int i=0; i<1; i++) ch[i]=kom[rand() % 15];
   ch[1]=0;
 }
 
int main()
{byte i;
   char str[4] = {'e','n','d'};
   char ch[4];
   srand(time(0));
   i=0;
   while ( i != 3 )
    {
       SetRND(ch);
        cout << str[i];
        if (str[i]== ch){++i;}
 
       }
 
   system("pause");
   return 0;
 
}
ты хочешь сравнить символы или строки? ch у тебя строка, а сравниваешь с единичным символом, сравнивать надо одинаковые величины
0
Moroz-
0 / 0 / 1
Регистрация: 05.10.2012
Сообщений: 20
05.10.2012, 22:12  [ТС] #12
да,я понял почему не сравнивалось, надо было символ == символ.
Спасибо большое, разобрался,все заработало
0
05.10.2012, 22:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2012, 22:12
Привет! Вот еще темы с ответами:

Вывод числа из набора случайным образом - C++
Помогите пожалуйсто написать программы, которые будут печатать число из набора случайным образом: Программа 1: 2, 4, 6, 8, 10. ...

Перемешивание элементов массива случайным образом - C++
Здравствуйте. Помогите написать функцию, которая рандомно перемешивает элементы массива. void PeremeshivanieMassiva(int m); void...

Строки. В массиве s(20) сформированном случайным образом - C++
Помогите, пожалуйста В массиве s(20) сформированном случайным образом, найти отрицательные элементы и заменить их средним...

Печатать число из набора случайным образом: 2, 4, 6, 8, 10 - C++
Помогите пожалуйста написать программу в цикле, которая будет печатать число из набора случайным образом: 2, 4, 6, 8, 10. В программе...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

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