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

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

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

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

07.05.2011, 23:10. Просмотров 354. Ответов 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;
 
}
не компилируется
в чем моя ошибка
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2011, 23:10     Поиск в массиве
Посмотрите здесь:

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

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

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

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

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

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

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

поиск слова в массиве - C++
как реализовать поиск слова в массиве путем итератора само слово находится в переменной stro=&quot;jkhjg&quot; Надо вывести m этого слова,...

Поиск максимума в массиве - C++
Всем доброго времени суток! Прошу помощи у форумчан, возникла проблема, не могу понять, как возвести элементы массива в куб. Задание звучит...

Поиск элементов в массиве - C++
Пожалуйста,помогите решить задачи. 1)Дан одномерный массив А.Найти максимальный по модулю элемент данного массива 2)Даны два...

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

Поиск элемента в массиве - C++
Как написать рекурсивную функцию для поиска элемента в массиве?


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
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;
 
}
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 минут
з.ы. работает не совсем корректно
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
08.05.2011, 15:57     Поиск в массиве #4
Достаточно тут поменять местами...
C++
1
strstr(a[i],key)
а char a[][5] получается следующим образом:
вы создаёте массив символьных массивов. Самый длинный из них - VIII, это 4 символа + нулевой, таким образом мы получаем длину массива символов. а первые [] оставлены пустыми потому, что количество строковых массивов компилятор может взять из их количества в инициализирующей строке. если режет глаз - можно вставить туда N
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
Все отлично, очень благодарен Вам
Yandex
Объявления
08.05.2011, 16:02     Поиск в массиве
Ответ Создать тему
Опции темы

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