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

Не осуществляется поиск по массиву - C++

Восстановить пароль Регистрация
 
lиnа
 Аватар для lиnа
0 / 0 / 0
Регистрация: 30.01.2014
Сообщений: 1
30.01.2014, 10:12     Не осуществляется поиск по массиву #1
Программа не выводит на экран имена и фамилии людей, а просто выдает конечный результат "Lyudi s takiv imenem ne naydeni". Это значит что k всегда равно 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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include<iostream>
#include<stdio.h>
#include<math.h>
#include<string.h>
#define n 10 // количество элементов в массие
using namespace std;
struct fio{ // наша структура 
    char fam[20]; // фамилия
    char im[20]; // имя
};
int main()
{
    char s[20]; // строка, вводимая пользователем
    int k; // количество найденных записей
    fio a[n]={ // массив записей
        {"Petrosyan","Evgenii"},
        {"Stepanenko","Elena"},
        {"Morozov","Alexandr"},
        {"Hristenko","Igor"},
        {"Vashukov","Mihail"},
        {"Cherishenko","Mihail"},
        {"Belov","Mihail"},
        {"Razumovskii","Viktor"},
        {"Smirnov","Mihail"},
        {"Merezhnikov","Konstantin"},
    }; // инициализация массива
    cout<<"vvedite Imya:"<<endl;
    scanf("%s",&s);// вводим имя
    k=0;  // количество найденных записей=0
    for(int i=0;i<n;i++)
    {
        if(strcmp(s,a[i].im)==0)//имена совпали
        {
            cout<<a[i].fam<<" "<<a[i].im<<endl; // выводим фамилию и имя
            k++; // увеличиваем количество найденных записей
        }
    }
    if(k==0) // не нашли ни одной записи
        cout<<"Lyudi s takiv imenem ne naydeni"<<endl;
 
    
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2014, 10:12     Не осуществляется поиск по массиву
Посмотрите здесь:

C++ Поиск по массиву
Поиск по массиву структур C++
C++ Поиск по массиву
Не осуществляется поворот матрицы C++
C++ Поиск по динамическому массиву
C++ Как сделать быстрый поиск по массиву разнотипных данных?
Дихотомия и интерполяционный поиск по отсортированному массиву C++
Как осуществляется поиск символа в строке? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
bradobrei
Продам уран 238U
 Аватар для bradobrei
119 / 119 / 23
Регистрация: 22.01.2013
Сообщений: 298
30.01.2014, 11:19     Не осуществляется поиск по массиву #2
у меня работает )
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include<iostream>
#include<stdio.h>
#include<math.h>
#include<string.h>
#define n 10 // количество элементов в массие
using namespace std;
struct fio{ // наша структура 
    char fam[20]; // фамилия
    char im[20]; // имя
};
int main()
{
    char s[] = "Mihail"; // строка, вводимая пользователем
    int k; // количество найденных записей
    fio a[n]={ // массив записей
        {"Petrosyan","Evgenii"},
        {"Stepanenko","Elena"},
        {"Morozov","Alexandr"},
        {"Hristenko","Igor"},
        {"Vashukov","Mihail"},
        {"Cherishenko","Mihail"},
        {"Belov","Mihail"},
        {"Razumovskii","Viktor"},
        {"Smirnov","Mihail"},
        {"Merezhnikov","Konstantin"},
    }; // инициализация массива
    cout<<"vvedite Imya:"<<endl;
   // scanf("%s",&s);// вводим имя
    k=0;  // количество найденных записей=0
    for(int i=0;i<n;i++)
    {
        if(strcmp(s,a[i].im)==0)//имена совпали
        {
            cout<<a[i].fam<<" "<<a[i].im<<endl; // выводим фамилию и имя
            k++; // увеличиваем количество найденных записей
        }
    }
    if(k==0) // не нашли ни одной записи
        cout<<"Lyudi s takiv imenem ne naydeni"<<endl;
 
    
    return 0;
}
vvedite Imya:
Vashukov Mihail
Cherishenko Mihail
Belov Mihail
Smirnov Mihail
Ko_Sergey
2 / 2 / 0
Регистрация: 17.01.2014
Сообщений: 26
30.01.2014, 11:22     Не осуществляется поиск по массиву #3
этот код работает, только что проверил. возможно при вводе Вы не учитывали регистр(ввод имени с большой буквы остальные маленькие)...
P.S. и вводите только имя, т. к. записи проверяются на совпадение только с именем...
Yandex
Объявления
30.01.2014, 11:22     Не осуществляется поиск по массиву
Ответ Создать тему
Опции темы

Текущее время: 23:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru