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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Dmirtiy Vovk
4 / 4 / 0
Регистрация: 07.08.2014
Сообщений: 164
#1

Переменная в качестве номера элемента массива. Array[Var] - C++

07.08.2014, 13:38. Просмотров 1319. Ответов 40
Метки нет (Все метки)

Мне нужно изменяя некую переменную Var обращатся к различным элементам массива Array[Var].

Компилятор не выдаёт ошибок, но код выполняется не так, как задумано,

Например
C++
1
SomeVar = Array[Var] // в лучшем случае получается что SomeVar принимает значение Var.
Короче не работает, и как я понимаю и не должно.

Помогите придумать выход из ситуации, иначе я просто разочаруюсь в этом очень сложном и очень безпомощьном языке С++.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.08.2014, 13:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переменная в качестве номера элемента массива. Array[Var] (C++):

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

Массивы (переменная в качестве размера для массива) - C++
Доброго времени суток! Подскажите, что я не правильно сделал? Там где у меня создаются массивы переменная "number" подчеркнута, а...

Определить номера минимального элемента массива и элемента, являющегося минимальным без учета этого элемента. - C++
Дан массив. Определить номера минимального элемента массива и элемента, являющегося мини-мальным без учета этого элемента.

Проверка номера элемента массива на простоту - C++
Дан массив вещественных чисел.Необходимо вывести сумму чисел, порядковые номера которых являются простыми числами. Как можно осуществить...

Зачем взятие адреса нулевого элемента массива, если сама переменная и так его содержит? - C++
Доброго времени суток. Очень часто наблюдаю во всевозможных примерах такого вида код: void* bits = (void*)&(pixels); Таких...

Нахождения номера самого большего элемента массива целых чисел - C++
Составьте фрагмент программы на С++ для нахождения номера самого большего элемента массива целых чисел из 10-ти элементов

40
SatanaXIII
Супер-модератор
Эксперт С++
5640 / 2675 / 252
Регистрация: 01.11.2011
Сообщений: 6,571
Завершенные тесты: 1
07.08.2014, 13:43 #2

Не по теме:

Цитата Сообщение от Dmirtiy Vovk Посмотреть сообщение
очень безпомощьном языке С++
Даа. Плюсы ни от кого помощи не ждут.



Добыча мусора:
C++
1
2
3
int Array[100];
int Var = 66;
int SomeVar = Array[Var];
0
zss
Модератор
Эксперт С++
6575 / 6137 / 2021
Регистрация: 18.12.2011
Сообщений: 15,993
Завершенные тесты: 1
07.08.2014, 13:43 #3
Вы так пробовали?
C++
1
2
3
4
5
6
7
8
9
int Array[10];
for(int i=0;i<10;i++)
    Array[i]=rand();
int Var;cin>>Var;
if(Var<10 && Var>=0)
{
    int SomeVar = Array[Var];
    cout<<SomeVar;
}
1
CheshireCat
Эксперт С++
2896 / 1245 / 78
Регистрация: 27.05.2008
Сообщений: 3,405
07.08.2014, 13:44 #4
Приведи компилируемый код, который воспроизводит данную ошибку.
1
dimabubyakin
159 / 120 / 44
Регистрация: 16.10.2013
Сообщений: 1,738
Завершенные тесты: 5
07.08.2014, 13:46 #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int a[5]={1,2,3,4,5};
int var=0;
a[var]//=1
va=4;
a[var]//=5;
///////////
for(int iterator;iterator<5;iterator++)
    std::cout<<a[iterator]<<endl;
/*
1
2
3
4
5
*/
Добавлено через 1 минуту

Не по теме:

Dmirtiy Vovk,

Цитата Сообщение от Dmirtiy Vovk Посмотреть сообщение
очень безпомощьном языке С++
Уж не знаю что сказать...

0
zss
Модератор
Эксперт С++
6575 / 6137 / 2021
Регистрация: 18.12.2011
Сообщений: 15,993
Завершенные тесты: 1
07.08.2014, 14:01 #6
Цитата Сообщение от dimabubyakin Посмотреть сообщение
for(int iterator;
Откуда следует, что переменной iterator присваивается ноль?
0
dimabubyakin
159 / 120 / 44
Регистрация: 16.10.2013
Сообщений: 1,738
Завершенные тесты: 5
07.08.2014, 14:03 #7
zss, это уже невнимательность))
C++
1
for(int iterator=0;iterator<5;iterator++)
1
Dmirtiy Vovk
4 / 4 / 0
Регистрация: 07.08.2014
Сообщений: 164
07.08.2014, 14:25  [ТС] #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
                   ........................
                          PORTD = 1 << (Column-1);// Порт это регистр, 8-битное число
              PORTA = 1 << (Line-1);// Тоже самое.
              LedNum = (Line-1)*6 + Column;// LedNum получает значение в зависимости от Line и Column.
              Tmp = Leds100A[LedNum];// Тмп не получает ничего (0) !!!!!!!!!!!!!!!!!!
              Tmp = Tmp - GlobalTime; //Ну и дальше не происходит ничего интересного
              Tmp = Tmp * 100;
              Tmp = Tmp / Leds100A[LedNum];
              Tmp = round(Tmp);
              //Tmp = round((Leds100A[LedNum-1] - GlobalTime) * 100/Leds100A[LedNum-1]);
              OCR2 = Tmp*2.56;
              _delay_us(50);
              if(Column != 6)
              ++Column;
              else if(Line == 7)
                   Line = 1;
                   else
                   ++Line;
                          ..................................
0
SatanaXIII
Супер-модератор
Эксперт С++
5640 / 2675 / 252
Регистрация: 01.11.2011
Сообщений: 6,571
Завершенные тесты: 1
07.08.2014, 14:38 #9
Dmirtiy Vovk, а вы уверены, что температура первого из стоамперных диодов не равна нулю?
0
Dmirtiy Vovk
4 / 4 / 0
Регистрация: 07.08.2014
Сообщений: 164
07.08.2014, 14:54  [ТС] #10
Цитата Сообщение от SatanaXIII Посмотреть сообщение
а вы уверены, что температура первого из стоамперных диодов не равна нулю?
Leds100A это не 100 А ))), а партия А, Tmp это Temporary.


Если верить той же среде разработки то массив int Leds100A имеет размер 42 и все данные правильно в нём...


Я наверное не могу отправлять ссылки и картинки, только зарегистрировался на этом форуме....

Добавлено через 7 минут
Цитата Сообщение от dimabubyakin Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
int a[5]={1,2,3,4,5};
int var=0;
a[var]//=1
va=4;
a[var]//=5;
///////////
for(int iterator;iterator<5;iterator++)
   std::cout<<a[iterator]<<endl;
Скажите, этот код рабочий? iterator увеличивается на 1 и выводится соответствующий эллемент массива куда то там? Потому что у меня похожее не работает...
Ясно что в начале цикла нужно инициализировать int iterator=0.Я в общем об идее использования переменной как номер элемента массива.
0
SatanaXIII
Супер-модератор
Эксперт С++
5640 / 2675 / 252
Регистрация: 01.11.2011
Сообщений: 6,571
Завершенные тесты: 1
07.08.2014, 14:56 #11
Цитата Сообщение от Dmirtiy Vovk Посмотреть сообщение
имеет размер 42
Вот вам и ответ. На все и вообще.

Цитата Сообщение от Dmirtiy Vovk Посмотреть сообщение
Я наверное не могу отправлять ссылки и картинки, только зарегистрировался на этом форуме
Попробуйте вот так: http://www.cyberforum.ru/about-forum/thread103521.html#post594251
1
Dmirtiy Vovk
4 / 4 / 0
Регистрация: 07.08.2014
Сообщений: 164
07.08.2014, 16:35  [ТС] #12
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Вот вам и ответ. На все и вообще.
Я не понимаю, почему это ответ?
0
SatanaXIII
Супер-модератор
Эксперт С++
5640 / 2675 / 252
Регистрация: 01.11.2011
Сообщений: 6,571
Завершенные тесты: 1
07.08.2014, 16:41 #13
Цитата Сообщение от Dmirtiy Vovk Посмотреть сообщение
Я не понимаю, почему это ответ?
Потому что это ответ на главный вопрос жизни, вселенной и всего такого.

А вообще сформулируйте свою проблему. Непонятно что вам требуется. Какая помощь.
0
krv
74 / 54 / 11
Регистрация: 10.07.2014
Сообщений: 328
07.08.2014, 16:51 #14
Кусочек кода - формально правильный. Скорей всего проблема в значениях Line, Column или самого массива.
Ибо в приведенном куске нет их инициализации.
Пройди пошагово и посмотри, к какому элементу массива ссылается конструкция
C++
1
2
LedNum = (Line-1)*6 + Column;// LedNum получает значение в зависимости от Line и Column.
              Tmp = Leds100A[LedNum]
и что хранится в массиве
1
Dmirtiy Vovk
4 / 4 / 0
Регистрация: 07.08.2014
Сообщений: 164
07.08.2014, 16:52  [ТС] #15
SatanaXIII,
Я хочу указывать вместо числа элемента массива переменную, но это не работает у меня.

Дима писал код
Цитата Сообщение от dimabubyakin Посмотреть сообщение
int a[5]={1,2,3,4,5};
int var=0;
a[var]//=1
va=4;
a[var]//=5;
///////////
for(int iterator;iterator<5;iterator++)
* * std::cout<<a[iterator]<<endl;
/*
1
2
3
4
5
*/
Я вот и спрашиваю, это у всех не работает или только у меня, если только у меня то почему? как еще выражать ся...
0
07.08.2014, 16:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.08.2014, 16:52
Привет! Вот еще темы с ответами:

Составить программу для нахождения номера максимального элемента массива - C++
4)Известен массив x1,х2,х3,…,х9. Составить программу для нахождения номера максимального элемента. Исходный массив, найденный номер...

Найти и вывести на экран номера первого и последнего минимального элемента одномерного массива - C++
Дан одномерный массив А. Найти номера первого и последнего минимального элемента из данного массива и вывести их в указанном порядке

Составить программу для нахождения первого элемента массива меньше десяти и его номера - C++
3)Известен целочисленный массив x1,х2,х3,…,х10. Составить программу для нахождения первого элемента меньше десяти и его номера. Если такого...

Описать процедуру NminMax(A,N,NMin,NMax), находящую номера минимального и максимального элемента массива А - C++
Описать процедуру NminMax(A,N,NMin,NMax), находящую номера минимального и максимального элемента массива А из N вещественных чисел....


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

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

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