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

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

Войти
Регистрация
Восстановить пароль
 
lиnа
0 / 0 / 0
Регистрация: 30.01.2014
Сообщений: 1
#1

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

30.01.2014, 10:12. Просмотров 256. Ответов 2
Метки нет (Все метки)

Программа не выводит на экран имена и фамилии людей, а просто выдает конечный результат "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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2014, 10:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не осуществляется поиск по массиву (C++):

Как осуществляется поиск символа в строке? - C++
Объясните пожалуйста как осуществляется поиск символа в строке?алгоритм какой ?

Поиск по массиву - C++
Уважаемые господа! Подскажите пожалуйста как осуществить поиск по двум массивам и занести одинаковые элементы в третий массив и...

Поиск по массиву - C++
Некоторый массив содержит повторяющиеся элементы, нужно найти количество различных элементов в нём. #include&lt;stdio.h&gt; #include&lt;conio.h&gt;...

Поиск по динамическому массиву - C++
Задан целочисленный двумерный массив a из n строк и m столбцов. Найти номер последнего максимального значения среди нечетных (по значению)...

Поиск по массиву структур - C++
Создать структуру, которая содержит информацию о покупателе (имя, фамилия, адрес в виде вложеной структуры и т. д.) и заполнить её в виде...

Дихотомия и интерполяционный поиск по отсортированному массиву - C++
Естьчо в типовых/стандартных библиотеках для C или в STL? Спасибо

2
bradobrei
Продам уран 238U
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
0
Ko_Sergey
2 / 2 / 0
Регистрация: 17.01.2014
Сообщений: 28
30.01.2014, 11:22 #3
этот код работает, только что проверил. возможно при вводе Вы не учитывали регистр(ввод имени с большой буквы остальные маленькие)...
P.S. и вводите только имя, т. к. записи проверяются на совпадение только с именем...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2014, 11:22
Привет! Вот еще темы с ответами:

Как сделать быстрый поиск по массиву разнотипных данных? - C++
Как сделать быстрый поиск по массиву и разнотипных данных?

Не осуществляется поворот матрицы - C++
Значит такая пробелма. Имеется следующая задача: Для заданного целого N(0&lt;=N&lt;=40) создать квадратную матрицу размером N*N, такую что каждый...

Не осуществляется объединение двух контейнеров - C++
set&lt;string&gt; matt, patt; set&lt;string&gt; matt_and_patt; Info_Processing(matt,&quot;Matt&quot;); // заполнение первого и второго множества ...

Запуск деструктора не осуществляется в приведенном коде - C++
Добрый день. Написал программу, а в ней не хочет автоматически запускаться, хотя я вроде бы всё правильно делаю. Прошу подсказать, в чём...


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

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

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