6 / 6 / 2
Регистрация: 22.10.2011
Сообщений: 164
|
||||||
1 | ||||||
Вопрос по массивам С++23.10.2011, 10:45. Показов 1843. Ответов 21
Метки нет (Все метки)
Вот код:
1) Объясните мне зачем второй раз делать пару циклов for??? Почему нельзя сразу после объявления и инициализации переменной (массива), вывести его на консоль... 2) И как сделать так, чтобы вывести цикл ещё раз??? Просто непонимаю, почему рандом не работает, при каждом запуске программы, одни и те же числа в массиве ((((
0
|
23.10.2011, 10:45 | |
Ответы с готовыми решениями:
21
Вопрос по Массивам. Вопрос по массивам Вопрос по одномерным массивам. Небольшой вопрос по массивам |
57 / 34 / 0
Регистрация: 08.04.2008
Сообщений: 153
|
|
23.10.2011, 11:05 | 2 |
Потомучто у вас двумерный массив. Если раскладывать как матрицу, то первый цикл перебирает номера столбцов, а второй - номера строк столбцов.
Написать функцию и каждый раз вызывать ее. Или писать один код несколько раз. Добавьте заголовочный файл <ctime>, а в начале функции main инициируйте его каким-либо значением. Например, srand(time(0)) (текущим временем, тогда значения всегда будут разными).
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
23.10.2011, 21:35 | 6 |
Van111, вы же понимаете, что размеры скалярных типов в стандарте не оговариваются (оговаривается только соотношение между размерами) и в общем случае зависят от реализации?
0
|
6 / 6 / 2
Регистрация: 22.10.2011
Сообщений: 164
|
|||||||||||
24.10.2011, 05:24 [ТС] | 7 | ||||||||||
Вопрос снят)))
Я непонимал зачем надо два раза цикл for выводить, а потом опять два раза его выводить, чтобы вывести в консоль(форму)...
Прошу прощения ))) Сам не внимателен был. Скажите, а не каких-то правил в С++ если объявил переменную, я ведь могу с неё что хочу сразу после объявления делать, правильно??? Просто я по описанию ошибки непонял ничего, кроме того, что что-то с переменными не так (((
0
|
57 / 34 / 0
Регистрация: 08.04.2008
Сообщений: 153
|
|
24.10.2011, 06:13 | 8 |
У вас в цикле for не были переменные объявлены. Откуда компилятору о них знать? После того, как цикл отработал, то переменная удалилась, в следующем цикле надо ее заново объвлять.
А как вы предлагаете обращаться последовательно ко всем элементам массива? Вручную их выводить? А если их миллион и более? Не устанете? P.S. Может у вас есть более красивый вариант? rand() вы опять не инициировали, поэтому у вас опять будут генерироваться одни и теже значения. Добавлено через 2 минуты Правильно, только я советовал бы при объявлении сразу присваивать переменным значение (например, 0).
1
|
6 / 6 / 2
Регистрация: 22.10.2011
Сообщений: 164
|
|
24.10.2011, 12:44 [ТС] | 9 |
0
|
24.10.2011, 18:29 | 11 |
по стандарту переменную в цикле объявлять нельзя не все компиляторы это съедят и она видна за его пределами я так ранье тоже делал но компилятор навернулся и вам повезло если ваш компилятор выделяет память для этой переменной в оперативке и по окончанию цикла уничтожает её
1
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
24.10.2011, 20:26 | 12 |
Всё с точностью до наоборот, по стандарту С++ переменные можно объявлять в любом месте программы.
Добавлено через 47 секунд Ерунда, она уничтожается по выходу из блока, в котором объявлена.
0
|
72 / 30 / 4
Регистрация: 29.05.2010
Сообщений: 478
|
||||||
24.10.2011, 21:26 | 13 | |||||
10000 10 100000 10 12000 10 240000 10 0.01 10 Считывает столбик 1 правильно, а вот выдача по массиву е - непонятные числа, кроме первой 10-ки, которую не должна быть =10, т.к. делится на 100 перед выводом. Что я упустил?
0
|
25.10.2011, 18:07 | 14 |
silent_1991, зайди в тему испортился компилятор и посмотри ты же сам там по моему постел
Добавлено через 1 минуту вот у меня как раз в навернувшимся компиляторе mv c++ 2006 она и не уничтожается Добавлено через 32 секунды это не мои слова мне самому так сказали
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
25.10.2011, 20:03 | 15 |
Вам в той теме сказали, что компилятор 6 студии древний, он был выпущен ещё до первой редакции стандарта. И там действительно были косяки с областями видимости переменных.
Это и не мои слова, так что зря вы меня процитировали.
0
|
6 / 6 / 2
Регистрация: 22.10.2011
Сообщений: 164
|
|
26.10.2011, 15:15 [ТС] | 19 |
Ребята, хорош флудить...
Ответ дан, спасибо всем))) Я попробовал: 1) если до цикла объявить переменную, то можно её использовать всегда... 2) если внутри цикла объявить переменную, то вне цикла её просто нет...
0
|
174 / 170 / 19
Регистрация: 31.08.2010
Сообщений: 573
|
||||||
26.10.2011, 15:40 | 20 | |||||
Просьба писать понятно, нормальным человеческим языком без ошибок.
a[10][10] for(int i=0; i<=10; i++) индексация начинается с нуля, т.е. в данном цикле будет переполнение массива (выход за пределы массива). Во-вторых, мой пример программы:
0
|
26.10.2011, 15:40 | |
26.10.2011, 15:40 | |
Помогаю со студенческими работами здесь
20
Вопрос по символьным массивам Вопрос по массивам. Вопрос по массивам. Вопрос по массивам Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |