Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
 Аватар для Rebel123
1 / 1 / 0
Регистрация: 06.05.2012
Сообщений: 12

Строковый массив и цикл for

07.10.2012, 16:56. Показов 2192. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Сколько раз не пытался, не получается сделать так, чтобы после проверки условия цикл пошел повторно и при этом счетчик строковых массивов увеличивался на единицу. Прилагаю код ниже:
Code
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
#include <iostream>
using namespace std;
 
main()
{
      const int name = 5;
      const int mails = 5;
      const int passes = 5;
      string z;
      int p = 1;
      string pass[passes] = {"123", "1234", "12345", "123456", "1234567"};
      string user[name] = {"Mark", "Tom", "Scott", "Travis", "Sam"};
      string mail[mails] = {"mark@gmail.com", "tom@yahoo.com", "scott@hotmail.com", "travis@apple.com", "sam@gmail.com"};
    // string currentuser;
    cout << "There are 5 usernames in our database, enter a valid name for getting a password:" << endl;
    for (int i=0; i<name; ++i)
    {
       // cout << "attempt number " << i << endl;
        cout << "Pass for user "; cout << user[0]  << endl;
        getline(cin, z);
        if (z == pass[0]) 
        {
            cout << mail[0] << endl;
            user[0] = p;
            mail[0] = p;
            pass[0] = p;            
        } 
    } 
    system("pause");
}
Условие задачи: Создать программу, которая будет запрашивать пароль логина (последовательно из 5 существующих) и выдавать их e-mail в случае правильно ввода пароля. Если было введено не правильно, попросит ввести повторно, но учитывать надо то, что общей попытке ввода пароля для всех логинов не должно превышать 3, после чего программа закроется.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.10.2012, 16:56
Ответы с готовыми решениями:

Строковый массив (объявить пустой глобальный строковый массив из 16 элементов)
Подскажите, как объявить пустой глобальный строковый массив из 16 элементов? в качестве элементов будут указаны пути к графическим...

Строковый динамический массив
Как считать две строки в динамический строковый массив, чтобы потом можно было работать с этими строками и копировать из них нужные символы...

Строковый Массив с циклом
Помогите, ошибка в создании строкового Массива. Собственно, данный код связан с as3, но здесь ошибка в плане C++.. Необходимо, чтоб...

4
 Аватар для I.M.
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
07.10.2012, 17:01
вам нужно 2 счетчика. один для прохождения по всем логинам, а второй для учета неверных попыток.
0
 Аватар для Rebel123
1 / 1 / 0
Регистрация: 06.05.2012
Сообщений: 12
07.10.2012, 17:08  [ТС]
Цитата Сообщение от I.M. Посмотреть сообщение
вам нужно 2 счетчика. один для прохождения по всем логинам, а второй для учета неверных попыток.
А как сделать так, чтобы индексы массивов увеличивались на единицу?
0
 Аватар для I.M.
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
07.10.2012, 17:18
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for (int i = 0, j = 0; i < name_size && j!=3; ++i)
{
    std::string test_pas;
    std::cin >> test_pas;
 
    if(test_pas == password[i])
    {
        std::cout << mail[i] << std::endl;
    }
    else
    {
        j++;
                      //i--; //если надо еще раз запросить пароль для того же логина
    }
}
это упрощенная версия. Подставьте сюда имена своих переменных и массивов, сделайте дополнительные cout, если надо и тд.
1
 Аватар для Rebel123
1 / 1 / 0
Регистрация: 06.05.2012
Сообщений: 12
07.10.2012, 17:49  [ТС]
Спасибо, вам плюсанул =]

Вот полный исходный код, может кому пригодится.
Code
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
#include <iostream>
using namespace std;
 
main()
{
      const int name = 5, mails = 5, passes = 5;
      string z;
      int p = 1, b = 0;
      string pass[passes] = {"123", "1234", "12345", "123456", "1234567"};
      string user[name] = {"Mark", "Tom", "Scott", "Travis", "Sam"};
      string mail[mails] = {"mark@gmail.com", "tom@yahoo.com", "scott@hotmail.com", "travis@apple.com", "sam@gmail.com"};
      cout << "There are 5 usernames in our database, enter a valid name for getting a password:" << endl;
      for (int i = 0, j = 0; i < name && j!=3; ++i)
      {
            cout << "Password for user "; cout << user[i]  << endl;
            std::string z;
            getline(cin, z);
            if (z == pass[i]) 
            {
                  cout << "Entered password is correctly, here's his e-mail: " << mail[i] << endl;         
            } 
            else
            {
                  j++;
                  i--;
                  cout << "Invalid login, please try again " << endl;
            }
      } 
      system("pause");
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.10.2012, 17:49
Помогаю со студенческими работами здесь

Динамический строковый массив
Здравствуйте. Появилась проблема. Пытаюсь реализовать программу, которая считывает строку в динамический массив. Заранее количество...

Двумерный строковый массив
Доброе время суток! Подскажите, пожалуйста, как правильно создать и заполнить двумерный строковый массив! Пробовал делать так: ...

Строковый массив в int массив
Нужно ввести длинное число. Хочу сделать через char-массив, а потом присвоить значения индексов char-массива для int-массива, т.к. с вторым...

Строковый массив произвольного размера
Можно ли каким-то образом образом написать программу, в которой будет вводиться строковый массив произвольной длины? Если бы это был...

Строковый массив, прайс лист
Всем здравствуйте, задали в университете задание по c++, нужно с файла считать название продукта и его цену, потом нужно выбрать, какую...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru