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

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

Войти
Регистрация
Восстановить пароль
 
m1x
5 / 5 / 0
Регистрация: 20.11.2010
Сообщений: 173
#1

Поиск в массиве - C++

07.05.2011, 23:10. Просмотров 361. Ответов 4
Метки нет (Все метки)

нашел код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
 
using namespace std;
 
int main( void ) {
 
int index= -1, key, i;
 
cout <<"Enter key:";
cin >>key;
 
const int N= 10;
int a[N]= { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
 
for ( i= 0; i<N; i++ ) {
        if ( key == a[i] ) { index= i; break; }
}
 
if ( index>=0 ) {
        cout <<"Found index: " <<index <<"\n";
} else {
        cout <<"Not found index\n";
}
return 0;
 
}
переделал в

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
 
using namespace std;
 
int main( void ) {
 
int index= -1, i;
char key;
 
cout <<"Enter key:";
cin >>key;
 
const int N= 10;
char a[N]= { "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X" };
 
for ( i= 0; i<N; i++ ) {
        if ( key == a[i] ) { index= i; break; }
}
 
if ( index>=0 ) {
        cout <<"Found index: " <<index <<"\n";
} else {
        cout <<"Not found index\n";
}
return 0;
 
}
не компилируется
в чем моя ошибка
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2011, 23:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поиск в массиве (C++):

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

Поиск в массиве - C++
Дана строка. Определить порядковые номера элементов, которые мы ищем в ней, т.е. мы вбиваем символ и нам выводятся номера на которых он...

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

Поиск в массиве - C++
Найти наименьшую из нечетных компонент вектора и наибольшую из четных компонент. Если они имеют разные знаки, то вычислить сумму элементов...

Поиск в массиве - C++
Надо найти в массисе чисел со значениями от 0 до 255 повторяющиеся ровно два раза числа. Второй день туплю не могу написать 100% правильно...

Поиск в массиве - C++
Срочно нужна помощь! Помогите, кто может... Есть массив С(100), в нем нужно посчитать кол-во последовательностей положительных чисел,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
CEBEP
106 / 106 / 9
Регистрация: 21.03.2010
Сообщений: 440
08.05.2011, 00:29 #2
C++
1
char a[N]= { "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X" };
так нельзя. можно так:
C++
1
char a[][5]= { "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X" };
Добавлено через 5 минут
Так будет норм, вроде-бы
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include<iostream>
#include<cstring>
using namespace std;
 
int main( void ) {
 
    int index= -1, i;
    char key[5];
 
    cout <<"Enter key:";
    cin >>key;
 
    const int N= 10;
    char a[][5]= { "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X" };
 
    for ( i= 0; i<N; i++ )
        if ( strstr(key, a[i])) { index= i; break; }
 
    if ( index>=0 )
        cout <<"Found index: " << index + 1 <<"\n";
    else
        cout <<"Not found index\n";
    return 0;
 
}
1
m1x
5 / 5 / 0
Регистрация: 20.11.2010
Сообщений: 173
08.05.2011, 15:46  [ТС] #3
Цитата Сообщение от CEBEP Посмотреть сообщение
C++
1
char a[N]= { "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X" };
так нельзя. можно так:
C++
1
char a[][5]= { "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X" };
Добавлено через 5 минут
Так будет норм, вроде-бы
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<iostream>
#include<cstring>
using namespace std;
 
int main( void ) {
 
    int index= -1, i;
    char key[5];
 
    cout <<"Enter key:";
    cin >>key;
 
    const int N= 10;
    char a[][5]= { "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X" };
 
    for ( i= 0; i<N; i++ )
        if ( strstr(key, a[i])) { index= i; break; }
 
    if ( index>=0 )
        cout <<"Found index: " << index + 1 <<"\n";
    else
        cout <<"Not found index\n";
    return 0;

спасибо, а почему именно так

C++
1
char a[][5]= { "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X" };
это типа 10 элементов, каждый из которых в свою очередь состоит из 5?

Добавлено через 1 час 19 минут
з.ы. работает не совсем корректно
0
CEBEP
106 / 106 / 9
Регистрация: 21.03.2010
Сообщений: 440
08.05.2011, 15:57 #4
Достаточно тут поменять местами...
C++
1
strstr(a[i],key)
а char a[][5] получается следующим образом:
вы создаёте массив символьных массивов. Самый длинный из них - VIII, это 4 символа + нулевой, таким образом мы получаем длину массива символов. а первые [] оставлены пустыми потому, что количество строковых массивов компилятор может взять из их количества в инициализирующей строке. если режет глаз - можно вставить туда N
1
m1x
5 / 5 / 0
Регистрация: 20.11.2010
Сообщений: 173
08.05.2011, 16:02  [ТС] #5
Цитата Сообщение от CEBEP Посмотреть сообщение
Достаточно тут поменять местами...
C++
1
strstr(a[i],key)
а char a[][5] получается следующим образом:
вы создаёте массив символьных массивов. Самый длинный из них - VIII, это 4 символа + нулевой, таким образом мы получаем длину массива символов. а первые [] оставлены пустыми потому, что количество строковых массивов компилятор может взять из их количества в инициализирующей строке. если режет глаз - можно вставить туда N
Все отлично, очень благодарен Вам
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.05.2011, 16:02
Привет! Вот еще темы с ответами:

Поиск элемента в массиве - C++
Здравствуйте! Помогите доделать программу, нужно чтобы программа в пункте 2 (L==2)искала в массиве определенную константу (любое значение...

Бинарный поиск в массиве с++ - C++
Помогите, пожалуйста с задачей: Создать массив из 20-ти елементов, инициализировать массив. 1) Найти значение, которое есть в нем. 2)...

Поиск подпоследовательностей в массиве - C++
Надо найти все подпоследовательности в массиве. Например: массив: {3,4,1,2}, подпоследовательности:...

Поиск в массиве байт - C++
Как произвести поиск в массиве байт? Имеем массив байт А, в нем необходимо выполнить поиск массива В. Как я понимаю, мне необходимо...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.05.2011, 16:02
Ответ Создать тему
Опции темы

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