Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 27.07.2019
Сообщений: 3
1

Цикл по коллекции бесконечный, почему?

17.11.2019, 19:00. Показов 1626. Ответов 12

Вот такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
int main()
{
    
    srand(2);
    int nums[10];
    for(int &x: nums){
        x=rand()%10;
        cout<<x<<" ";
    }
    
    return 0;
}
При выполнении, прога перестаёт отвечать, т.к. цикл повторяется бесконечно.

Если так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
int main()
{
 
 
    int nums[]={1,2,3,4,5,6};
    for(int &x: nums){
        cout<<x<<" ";
    }
 
    return 0;
}
то постоянно выводит число 1528349827.
Вопрос - как так-то?
(ide - code blocks)
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.11.2019, 19:00
Ответы с готовыми решениями:

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

Подскажите, почему уходит в бесконечный цикл и как пофиксить
Всем добрый день! Возникла трудность при вызове функции. Функция должна принять int и...

Передача массивов в функцию: почему программа уходит в бесконечный цикл?
Всем здравствуйте, спасибо, что проявили к моей теме интерес. у меня вопрос и даже не один. для...

Объяснить почему программа уходит в бесконечный цикл (связные списки)
Всем привет. Собрал связанный список, он работает, но при вводе типа char, программа уходит в...

12
Don't worry, be happy
17244 / 10115 / 1956
Регистрация: 27.09.2012
Сообщений: 25,311
Записей в блоге: 1
17.11.2019, 19:02 2
Цитата Сообщение от PessNePess Посмотреть сообщение
Вопрос - как так-то?
А если антивирус отключить?
0
0 / 0 / 0
Регистрация: 27.07.2019
Сообщений: 3
17.11.2019, 19:07  [ТС] 3
Цитата Сообщение от Croessmah Посмотреть сообщение
А если антивирус отключить?
Как это может быть связанно?
0
Диссидент
Эксперт C
26348 / 16355 / 3557
Регистрация: 24.12.2010
Сообщений: 36,210
17.11.2019, 19:08 4
Цитата Сообщение от PessNePess Посмотреть сообщение
for(int &x: nums){
Увы, я пока не освоил этих новомодных циклов. Если и вы испытываете с ними затруднения, попробуйте пока по старинке
C++
1
2
3
for (int i=0; i <sizeof(nums)/sizeof(nums[0]); i++)
  cour << nums[i] << " ";
}
0
1848 / 1011 / 423
Регистрация: 11.10.2018
Сообщений: 5,253
17.11.2019, 19:15 5
Цитата Сообщение от PessNePess Посмотреть сообщение
C++
1
for(int &x: nums)
- что-то не нашел я в документации этот цикл. Он вообще есть в C++?

Добавлено через 1 минуту
Видимо нет его там еще.
0
Don't worry, be happy
17244 / 10115 / 1956
Регистрация: 27.09.2012
Сообщений: 25,311
Записей в блоге: 1
17.11.2019, 19:26 6
Цитата Сообщение от FFPowerMan Посмотреть сообщение
- что-то не нашел я в документации этот цикл. Он вообще есть в C++?
range-based for
В C++11 добавили, т.е. 8 лет уже.
0
фрилансер
3414 / 2639 / 642
Регистрация: 11.10.2019
Сообщений: 7,584
17.11.2019, 19:29 7
PessNePess, у меня не зацикливается, пользуюсь постоянно

Цитата Сообщение от Байт Посмотреть сообщение
Увы, я пока не освоил этих новомодных циклов
при таком синтаксисе каждый элемент контейнера/массива поочерёдно присваивается переменной, объявленной слева от :
0
815 / 502 / 211
Регистрация: 19.01.2019
Сообщений: 1,196
17.11.2019, 20:28 8
Лучший ответ Сообщение было отмечено PessNePess как решение

Решение

PessNePess,
Миниатюры
Цикл по коллекции бесконечный, почему?  
0
Croessmah
17.11.2019, 22:14
  #9

Не по теме:

nalbe666, оно бы не собралось, если бы не было поддержки C++11

0
815 / 502 / 211
Регистрация: 19.01.2019
Сообщений: 1,196
17.11.2019, 22:22 10
Croessmah, я скопировал код ТС и также получил петлю и warning: range-based 'for' loops only available with -std=c++11 or -std=gnu++11|. Залез в настройки - все чекбоксы пустые. Прочекал как на скриншоте и вуаля. Подробностей не знаю.
0
фрилансер
3414 / 2639 / 642
Регистрация: 11.10.2019
Сообщений: 7,584
17.11.2019, 22:24 11
PessNePess, попробуй принудительный полный ребилд. Не знаю, как codeblocks, а студия и креатор иногда (очень редко) выкидывают такой фокус - что-то там неправильно компилится или линкуется, чёрт их знает, но какое-нибудь место программы начинает вести себя неадекватно, хотя всё отлажено и начинаешь думать про чёрную магию. Полный ребилд решает беду
0
Don't worry, be happy
17244 / 10115 / 1956
Регистрация: 27.09.2012
Сообщений: 25,311
Записей в блоге: 1
17.11.2019, 23:43 12
Цитата Сообщение от nalbe666 Посмотреть сообщение
я скопировал код ТС и также получил петлю
Я получил просто краш.
0
0 / 0 / 0
Регистрация: 27.07.2019
Сообщений: 3
18.11.2019, 17:29  [ТС] 13
nalbe, спасибо, не заметил это сообщение.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.11.2019, 17:29

почему бесконечный цикл get() выводит последнюю букву много раз из файла
#include &lt;iostream&gt; #include &lt;fstream&gt; using namespace std; char pf =...

Объяснить почему при заполнении матрицы программа уходит в бесконечный цикл
#include &lt;iostream&gt; using namespace std; int main() { int mas; for (int i = 0; i &lt; 3;) {...

Почему если в консоли ввести вместо числа любой символ, программа впадает в бесконечный цикл?
Всем привет! Недавно начал изучать С++ и столкнулся с проблемой при создании калькулятора. Если в...

Почему при вводе числа программа работает нормально, а при вводе буквы уходит в бесконечный цикл?
void mainmenu() { cout &lt;&lt; &quot;Введи число&quot; &lt;&lt; endl; cin &gt;&gt; choice; if (choice == 1) { cout &lt;&lt;...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru