4 / 4 / 1
Регистрация: 10.09.2010
Сообщений: 53
1

Перебор элементов массива

10.09.2010, 15:54. Показов 44774. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени! Я новичек в С++, поэтому прошу не ругать. Вопрос - как организовать перебор элементов массива? Вот, например, в таком коде:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int _tmain(int argc, _TCHAR* argv[])
{
int nTempValue;
int myArray[n];
//Проверка на повторный ключ
for (int i = 0; i <= n-1; i++)
{
label1:cout << "Enter i =" << i << "key";
cin >> nTempValue;
myArray[i] = nTempValue;
for (int j = 0; j < i; j++)
{
if (myArray(j) == myArray(i)) - в этой строчке ошибка на myArray[j]
{
cout << "The entered key already exists. Enter a unique key\n";
goto label1;
//continue;
}
}
}
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.09.2010, 15:54
Ответы с готовыми решениями:

Перебор элементов массива
Добрый день, ув. форумчане. В наличии следующий код: int i; WCHAR *slovo = {L&quot;слово1&quot;,...

Перебор элементов массива
Господа,является ли метод do_something_with_value (*iter); в коде перебора , частью API ,или это...

Перебор всех нечетных элементов массива х из 99 элементов
Чему будет равно значение переменной s после завершения фрагмента программы: s:=0; i:=1; while...

Перебор элементов массива
Добрый день. Помогите с циклом. есть массив: array(2) { =&gt; string(2) &quot;c1&quot; =&gt; string(97)...

12
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
10.09.2010, 15:58 2
Цитата Сообщение от D.o.c.t.o.r Посмотреть сообщение
в этой строчке ошибка на myArray[j]
взятие элемента по индексу - квадратные скобки, переменная n неинициализрована, в целом это просто ужас
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#define N 10
int main()
{ 
    int i = 0;
    int array[N];
       
    for(i = 0; i < N; ++i) {
        // ввод в массив
        for(j = 0; j < i; ++j) {
            if(array[i] == array[j])
                ; // Что-то делается
        }
    }
}
1
Бродяга
315 / 269 / 56
Регистрация: 27.08.2010
Сообщений: 553
10.09.2010, 15:58 3
Вместо круглых скобок () использовать надо квадратные [].
1
4 / 4 / 1
Регистрация: 10.09.2010
Сообщений: 53
10.09.2010, 16:04  [ТС] 4
Большое спасибо. Я привык из фортрана круглые скобки ставить... fasked, переменная n инициализирована, я просто этот код не выставил, но спасибо за подсказку.

А можно ли переделать программу так, чтобы массив myArray[] был в качестве возвращаемого аргумента отдельной функции?
0
dihlofos
10.09.2010, 16:11
  #5

Не по теме:

Зачем кстати goto, можно просто i--, цикл же...

1
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
10.09.2010, 16:21 6
Цитата Сообщение от D.o.c.t.o.r Посмотреть сообщение
А можно ли переделать программу так, чтобы массив myArray[] был в качестве возвращаемого аргумента отдельной функции?
Сам массив возвращать нельзя, но можно воспользоваться указателями. Вот пример работы с массивом через указатель. Целых два способа
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
 
#define N 10
 
void fill_array(int *a, int size) {
    int i = 0;
    for(i = 0; i < size; ++i)
        a[i] = i;
}
 
void print_array(int *a, int size) {
    while(size--)
        printf("%d ", *a++);
}
 
int main()
{ 
    int i = 0;
    int array[N];
    
    fill_array(array, N);
    print_array(array, N);
}
2
Эксперт С++
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
10.09.2010, 16:23 7
Цитата Сообщение от D.o.c.t.o.r Посмотреть сообщение
int _tmain(int argc, _TCHAR* argv[])
кто-нибудь, объясните, что за странный мэйн?
0
fasked
10.09.2010, 16:24
  #8

Не по теме:

Цитата Сообщение от niXman Посмотреть сообщение
кто-нибудь, объясните, что за странный мэйн?
нормальный такой мелкомягкий main :)

1
niXman
10.09.2010, 16:26
  #9

Не по теме:


т.е. для микрософта нужно писать такой мэйн? а стандартный он понимает?

0
fasked
10.09.2010, 16:29
  #10

Не по теме:

Цитата Сообщение от niXman Посмотреть сообщение
т.е. для микрософта нужно писать такой мэйн? а стандартный он понимает?
Понимает конечно, это обычный макрос, сделан для каких-то замуток с юникод/неюникод.
TCHAR - может быть либо юникодным символом, либо обычным в зависимости от свойств проекта.
tmain - аналогично.
Зачем это все я не знаю :) Может быть как-то связано с winapi-функциями

1
4 / 4 / 1
Регистрация: 10.09.2010
Сообщений: 53
10.09.2010, 16:30  [ТС] 11
Цитата Сообщение от niXman Посмотреть сообщение
кто-нибудь, объясните, что за странный мэйн?
Этот мейн из программы Embarcadero RAD Studio 2010
1
niXman
10.09.2010, 16:30
  #12

Не по теме:

спасибо

0
Эксперт С++
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
10.09.2010, 17:45 13
Цитата Сообщение от niXman Посмотреть сообщение
кто-нибудь, объясните, что за странный мэйн?
В зависимости от того определена ли константа UNICODE:
_tmain разворачивается в main или wmain;
_TCHAR разворачивается в char или wchar_t.
Это позволяет без изменения исходного кода собирать юникодовские и неюникодовские версии приложений или библиотек.
1
10.09.2010, 17:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.09.2010, 17:45
Помогаю со студенческими работами здесь

Перебор элементов массива
Всем привет. Допустим есть двухмерный массив. В чем суть допустим 0 это пустота с ней ничего не...

Перебор элементов массива
Добрый день. Есть точка в 3d-пространстве с определенными координатами - летящий самолет. А...

перебор неповторяющихся элементов массива
Задан одномерный массив А целых чисел Составить новый одномерный массив В, в который нужно занести...

Перебор элементов с параметрами из массива
Есть файл с данными. 54 строки. В каждой строке 64 символа. (0..9,a..z,A..Z). Нужно прочитать файл...

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

Перебор элементов массива на формулах
Проблема заключается в следующем: есть текстовое поле(Allow multiple values), которое вычисляется...


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

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

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