Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 21.08.2016
Сообщений: 137

цикл for

04.10.2019, 09:36. Показов 1073. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void hash1(char str[]) {
    
    int key;
    char word[MAX_PATH];
    cout << "enter key: ";
    cin >> key;
    cout << "enter words: ";
    cin >> word;
 
    for (size_t j = 0; j < MAX_PATH; j++) {
        for (size_t i = 0; i < 34; i++) {
 
            if (str[i] == word[j]) {
 
                word[j] = str[i + key];
                break;
            }
        }
    }
не пойму почему первый цикл должен быть с массивом word for (size_t j = 0; j < MAX_PATH; j++) ?
а не for (size_t i = 0; i < 34; i++) с кол-во элементов массива str

for (size_t i = 0; i < 34; i++)
for (size_t j = 0; j < MAX_PATH; j++)
допустим так не будет работать
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.10.2019, 09:36
Ответы с готовыми решениями:

Цикл: Посчитать среднее арифметическое всех чисел в заданном диапазоне. Цикл while.
Напишите пожалуйста код для данной задачки с помощью цикла while Вывести числа в пользовательском диапазоне с шагом, указанным...

Цикл: Определить, сколько простейших организмов будет через каждый период их деления. Цикл while.
Напишите пожалуйста код к этой задачке, неделю уже ломаю себе голову как ее решить. Одноклеточная амеба каждые 3 часа делится на 2...

Цикл: Не могу создать цикл для switch
не могу создать цикл для switch

13
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
04.10.2019, 09:43
Цитата Сообщение от insandre Посмотреть сообщение
не пойму почему первый цикл должен быть с массивом word for (size_t j = 0; j < MAX_PATH; j++) ?
Он не должен быть от нуля до MAXPATH в любом случае. Должен быть вот таким
C++
1
for  (const char *p = word; p !=0; ++p)
Добавлено через 24 секунды
И напиши - что ты здесь пытаешься сделать?
0
0 / 0 / 0
Регистрация: 21.08.2016
Сообщений: 137
04.10.2019, 10:03  [ТС]
oleg-m1973, это шифр цезаря если так можно назвать

Добавлено через 2 минуты
C++
1
2
char buff[10];
for (size_t j = 0; j < 10; j++)
и так тоже нельзя
с чего это
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
04.10.2019, 10:06
Цитата Сообщение от insandre Посмотреть сообщение
и так тоже нельзя
с чего это
Потому что тебе нужно пробегать до конца строки, а не буфера, например
C++
1
2
char buff[10] = "123";
for (size_t j = 0; j < 10; j++)
Чему здесь будет равен buf[5] ?
0
0 / 0 / 0
Регистрация: 21.08.2016
Сообщений: 137
04.10.2019, 10:14  [ТС]
oleg-m1973,
и из за того что нет элемента по такому индексу

цикл работает не правильно

Добавлено через 6 минут
oleg-m1973,

и как мне дальше записать

C++
1
2
3
4
5
6
7
8
9
10
for (const char* p = word;p != 0;p++) {
        for (size_t i = 0; i < 34; i++) {
 
            if (str[i] == word[j]) {
 
                word[j] = str[i + key];
                break;
            }
        }
    }
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
04.10.2019, 10:16
Лучший ответ Сообщение было отмечено insandre как решение

Решение

Цитата Сообщение от insandre Посмотреть сообщение
и как мне дальше записать
word[j] замени на *p

Добавлено через 42 секунды
А что такое 34?
1
0 / 0 / 0
Регистрация: 21.08.2016
Сообщений: 137
04.10.2019, 10:24  [ТС]
столько букв в массиве str

ок спасибо работает
я еще с у казателями и ссылками не вникал пока лень

Добавлено через 1 минуту
oleg-m1973,
33 буквы и плюс ноль турьминатор )

Добавлено через 3 минуты
oleg-m1973,


чето пишет нарушение прав доступа

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int key;
    char word[MAX_PATH];
    cout << "enter key: ";
    cin >> key;
    cout << "enter words: ";
    cin >> word;
 
    for (const char* p = word;p != 0;++p) {
        for (size_t i = 0; i < 34; i++) {
 
            if (str[i] == word[*p]) {
 
                word[*p] = str[i + key];
                break;
            }
        }
    }
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
04.10.2019, 10:26
Цитата Сообщение от insandre Посмотреть сообщение
33 буквы и плюс ноль турьминатор )
Тогда надо for (size_t i = 0; i < 33; i++).
0
0 / 0 / 0
Регистрация: 21.08.2016
Сообщений: 137
04.10.2019, 10:35  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int dekey;
    char deword[10];
    
    cout << "enter key: ";
    cin >> dekey;
    cout << "enter words: ";
    cin >> deword;
    
    for (size_t j = 0; j <deword[j]; j++) {  // в расшифровке я так сделал, а то у меня лишние буквы выводились
        for (size_t i = 0; i < 34; i++) {
 
            if (str[i] == deword[j]) {
 
                deword[j] = str[i - dekey];
                break;
            }
        }
    }
    cout << deword;
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
04.10.2019, 10:41
Цитата Сообщение от insandre Посмотреть сообщение
deword[j] = str[i - dekey];
А здесь точно надо str[i - dekey], а не str[i] - dekey? Иначе выходишь за границы массива, при i < dekey
То же самое при str[i + key]
0
0 / 0 / 0
Регистрация: 21.08.2016
Сообщений: 137
04.10.2019, 10:47  [ТС]
да я в курсе
если бы массив str был таким str[33] ,а не str[] тогда такая ошибка была бы



у меня в шифровке с указателем пишет что
нарушение прав доступа
int key;
char word[MAX_PATH];
cout << "enter key: ";
cin >> key;
cout << "enter words: ";
cin >> word;

for (const char* p = word;p != 0;++p) {
for (size_t i = 0; i < 34; i++) {

if (str[i] == word[*p]) {

word[*p] = str[i + key];
break;
}
}
}
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
04.10.2019, 10:49
Цитата Сообщение от insandre Посмотреть сообщение
да я в курсе
если бы массив str был таким str[33] ,а не str[] тогда такая ошибка была бы
у меня в шифровке с указателем пишет что
нарушение прав доступа
Именно из-за этого - пытаешься читать за границами массива
0
0 / 0 / 0
Регистрация: 21.08.2016
Сообщений: 137
04.10.2019, 11:03  [ТС]
C++
1
word[*p] = str[i]+key;
все равно та же ошибка
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
04.10.2019, 11:06
Цитата Сообщение от insandre Посмотреть сообщение
все равно та же ошибка
word здесь не нужен
C++
1
*p = str[i]+key;
Добавлено через 30 секунд
Цитата Сообщение от insandre Посмотреть сообщение
if (str[i] == word[*p]) {
Здесь тоже

Добавлено через 1 минуту
Я ж тебе писал заменить word[j], а не просто j
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.10.2019, 11:06
Помогаю со студенческими работами здесь

Почему цикл на при 1 уходит в бесконечный цикл?
#define _CRT_SECURE_NO_WARNINGS #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; int main() { int x=0, y=0,...

Цикл: цикл for вообще никак не воспринимается транслятором
Пишу программу, которая производит различные действия с одномерным массивом. Возникла следующая проблема: цикл for вообще никак не...

Задание на цикл с параметром и цикл с постусловием
Помогите пожалуйста написать программу с этими циклами. 1. Вычислить и напечатать таблицу значений функции Z= (e^-x)sinx для...

Цикл for/Цикл while Помогите срочно пожалуйста...
1.Вычислить и вывести на экран в виде таблицы значения функции F от x1 до x2 с шагом dx. где a, b и c - действительные числа. 2.Цикл...

Цикл с параметром и цикл с условием
1. Составить программу вычисления суммы первых 10 непарных чисел 2. Дано числовой ряд и некоторое число &quot;епсила&quot;....


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru