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

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

Войти
Регистрация
Восстановить пароль
 
ShmelVG
2 / 2 / 0
Регистрация: 27.11.2015
Сообщений: 196
Завершенные тесты: 1
#1

Строка: Найти цвет/цвета предмета, введенного с клавиатуры. - C++

25.03.2016, 08:57. Просмотров 264. Ответов 12
Метки с++ (Все метки)

Помогите с решением!

Дан 3-х мерный инициализированный массив символов (6 строк, 2 столбца, 20 символов)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const int N=6, J=2, I=20;
    char mas[N][J][I] = {
        "BOOK",               "BLACK",
        "COPYBOOK",    "YELLOW",
        "PEN",                   "RED",
        "NOTEBOOK",     "WHITE",
        "PENSIL",             "RED",
        "BOOK",               "YELLOW",
    };
//печать массива
    for(int n=0; n<N; n++)
    {
        for(int j=0; j<J; j++)   cout<<mas[n][j]<<" ";
       cout<<endl;
    }
Написать программу, в которой создать диалог с пользователем по варианту:
1 вариант. Найти цвет/цвета предмета, введенного с клавиатуры.
Например:
Введите предмет: BOOK
BOOK: BLACK, YELLOW
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2016, 08:57     Строка: Найти цвет/цвета предмета, введенного с клавиатуры.
Посмотрите здесь:

Найти делители натурального числа, введенного с клавиатуры - C++
3) Найти делители натурального числа, введенного с клавиатуры. При решении задачи составить схему программы и реализовать программу на...

Найти элементы, которые по модулю меньше некоторого значения, введенного с клавиатуры - C++
задано матрицу размерностью N * M с произвольным многочисленных элементов. Найти элементы, которые по модулю меньше некоторого значения,...

Строка символов вводимая с клавиатуры, найти в строке наибольшее число - C++
Всем привет помогите с заданием . задание: Строка символов вводимая с клавиатуры,найти в строке наибольшее число. мои наброски не...

Обработка значения, введенного с клавиатуры - C++
Доброго времени суток. Хочу Вас попросить) Измените этот код пж так,что бы он разсчитывал значение ф-ции начиная с того Х, который...

Вычисление выражения, введенного с клавиатуры - C++
Мне нужно написать программу на Си, представляющую собой калькулятор....Типа: Вводим с клавиатуры арифметическое выражение типа...

Элементы введенного с клавиатуры массива - C++
Программа, которая проверяет, представляют ли элементы введенного с клавиатуры массива убывающую последовательность

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,184
Завершенные тесты: 1
25.03.2016, 09:50     Строка: Найти цвет/цвета предмета, введенного с клавиатуры. #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
char find[20];
cout<<"введите предмет для поиска:";
cin>>find;
for(int n=0; n<N; n++)
{
    if(strcmp(mas[i][0],find)==0)
      cout<<mas[i][1]<<endl;
}
ShmelVG
2 / 2 / 0
Регистрация: 27.11.2015
Сообщений: 196
Завершенные тесты: 1
25.03.2016, 09:59  [ТС]     Строка: Найти цвет/цвета предмета, введенного с клавиатуры. #3
Гениально!!)))Спасибо))

Добавлено через 5 минут
А вы могли бы для меня пояснить пожажуйста
Цитата Сообщение от zss Посмотреть сообщение
if(strcmp(mas[i][0],find)==0)
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,184
Завершенные тесты: 1
25.03.2016, 10:00     Строка: Найти цвет/цвета предмета, введенного с клавиатуры. #4
функция strcmp сравнивает 2 строки и возвращает ноль, если они совпадают.
ShmelVG
2 / 2 / 0
Регистрация: 27.11.2015
Сообщений: 196
Завершенные тесты: 1
25.03.2016, 10:00  [ТС]     Строка: Найти цвет/цвета предмета, введенного с клавиатуры. #5
...И вывод))
Цитата Сообщение от zss Посмотреть сообщение
mas[i][1]
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,184
Завершенные тесты: 1
25.03.2016, 10:07     Строка: Найти цвет/цвета предмета, введенного с клавиатуры. #6
mas[i][0] - это столбец с именем предмета
mas[i][1] - Столбец с цветом
ShmelVG
2 / 2 / 0
Регистрация: 27.11.2015
Сообщений: 196
Завершенные тесты: 1
25.03.2016, 10:14  [ТС]     Строка: Найти цвет/цвета предмета, введенного с клавиатуры. #7
А аналогичная, подскажите?
C++
1
2
3
4
5
6
7
char *mas[][2] = {
        "КНИГА",                             "ЧЕРНАЯ",
        "ТЕТРАДЬ",                         "ЖЕЛТАЯ",
        "РУЧКА",                              "КРАСНАЯ",
        "ЗАПИСНАЯ КНИЖКА",   "БЕЛАЯ",
        "",                         ""      //две пустые строки- признак конца массива
    };
Написать программу, в которой создать диалог с пользователем. В программе
найти цвет предмета, введенного с клавиатуры. Если такого предмета нет, дать сообщение. Ввод предмета на русском языке (применить функцию OemToCharA()).
Например:
Введите предмет: КАРАНДАШ
КАРАНДАШ – предмет отсутствует.
или
Введите предмет: РУЧКА
РУЧКА – КРАСНАЯ.
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,184
Завершенные тесты: 1
25.03.2016, 11:07     Строка: Найти цвет/цвета предмета, введенного с клавиатуры. #8
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
#include <iostream>
#include <cstring>
#include <windows.h>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Rus");
    char *mas[][2] = {
        "КНИГА",     "ЧЕРНАЯ",
        "ТЕТРАДЬ", "ЖЕЛТАЯ",
        "РУЧКА",    "КРАСНАЯ",
        "ЗАПИСНАЯ КНИЖКА",  "БЕЛАЯ",
        "",   ""      //две пустые строки- признак конца массива
    };
    char find[20];
    cout<<"введите предмет для поиска:";
    cin>>find;
    OemToChar(find,find);
    bool notfound=true;
    for(int i=0; strlen(mas[i][0])!=0; i++)
    {
        if(strcmp(mas[i][0],find)==0)
        {
            cout<<mas[i][0]<<" - "<<mas[i][1]<<endl;
            notfound=false;
        }
    }
    if(notfound)
        cout<<find<< " – предмет отсутствует"<<endl;
    system("pause");
    return 0;
}
ShmelVG
2 / 2 / 0
Регистрация: 27.11.2015
Сообщений: 196
Завершенные тесты: 1
25.03.2016, 13:45  [ТС]     Строка: Найти цвет/цвета предмета, введенного с клавиатуры. #9
В этом месте пишет ошибку
C++
1
OemToChar(find,find);
error C2664: OemToCharW: невозможно преобразовать параметр 2 из "char [20]" в "LPWSTR"
ShmelVG
2 / 2 / 0
Регистрация: 27.11.2015
Сообщений: 196
Завершенные тесты: 1
28.03.2016, 10:00  [ТС]     Строка: Найти цвет/цвета предмета, введенного с клавиатуры. #10
Доброе утро! Пожалуйста, проверьте код, и объясните ошибку, спасибо!)

Задание был оследующим:
Дана конструкция. Количество строк не задается.
C++
1
2
3
4
5
6
7
    char *mas[][2] = {
        "КНИГА",                             "ЧЕРНАЯ",
        "ТЕТРАДЬ",                         "ЖЕЛТАЯ",
        "РУЧКА",                              "КРАСНАЯ",
        "ЗАПИСНАЯ КНИЖКА",   "БЕЛАЯ",
        "",                         ""      //две пустые строки- признак конца массива
    };
Написать программу, в которой создать диалог с пользователем. В программе
найти цвет предмета, введенного с клавиатуры. Если такого предмета нет, дать сообщение. Ввод предмета на русском языке (применить функцию OemToCharA()).
Например:
Введите предмет: КАРАНДАШ
КАРАНДАШ – предмет отсутствует.
или
Введите предмет: РУЧКА
РУЧКА – КРАСНАЯ.

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
#include <iostream>
#include <cstring>
#include <windows.h>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Rus");
    char *mas[][2] = {
        "КНИГА",     "ЧЕРНАЯ",
        "ТЕТРАДЬ", "ЖЕЛТАЯ",
        "РУЧКА",    "КРАСНАЯ",
        "ЗАПИСНАЯ КНИЖКА",  "БЕЛАЯ",
        "",   ""      //две пустые строки- признак конца массива
    };
    char find[20];
    cout<<"введите предмет для поиска:";
    cin>>find;
    OemToChar(find,find);
    bool notfound=true;
    for(int i=0; strlen(mas[i][0])!=0; i++)
    {
        if(strcmp(mas[i][0],find)==0)
        {
            cout<<mas[i][0]<<" - "<<mas[i][1]<<endl;
            notfound=false;
        }
    }
    if(notfound)
        cout<<find<< " – предмет отсутствует"<<endl;
    system("pause");
    return 0;
}
Выдаёт ошибку в
C++
1
OemToChar(find,find);
пишет OemToCharW: невозможно преобразовать параметр 2 из "char [20]" в "LPWSTR"
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,184
Завершенные тесты: 1
28.03.2016, 10:15     Строка: Найти цвет/цвета предмета, введенного с клавиатуры. #11
В настройках проекта отмените использование уникода.
Или напишите
C++
1
OemToCharA(find,find);
ShmelVG
2 / 2 / 0
Регистрация: 27.11.2015
Сообщений: 196
Завершенные тесты: 1
28.03.2016, 13:08  [ТС]     Строка: Найти цвет/цвета предмета, введенного с клавиатуры. #12
Огромное спасибо)))Только я так и не понял почему именно так, и ещё обна проблема, как вывести в начале маасив(хотел бы чтоб перед тем как ввести слово, можно было увидеть), по просто так вывести не получается, ибо строк нету...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.03.2016, 13:54     Строка: Найти цвет/цвета предмета, введенного с клавиатуры.
Еще ссылки по теме:

Поиск слова введенного с клавиатуры - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main () { setlocale(LC_ALL, &quot;rus&quot;); ...

Проверка сортировки введенного с клавиатуры массива - C++
Написать программу, которая проверяет, представляют ли элементы введенного с клавиатуры массива возрастающую последовательность....

Проверка адреса файла, введенного с клавиатуры - C++
Мне нужно ввести адрес файла с клавиатуры и что бы проверяло, есть он или нет!!! Если есть, что бы выводило его на экран(но вывод я уже...

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


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

Или воспользуйтесь поиском по форуму:
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,184
Завершенные тесты: 1
28.03.2016, 13:54     Строка: Найти цвет/цвета предмета, введенного с клавиатуры. #13
C++
1
2
3
4
5
6
7
8
for(int i=0; strlen(mas[i][0])!=0; i++)
    {
        //if(strcmp(mas[i][0],find)==0) если эта строка закомментирована, то выводится весь массив.
        {
            cout<<mas[i][0]<<" - "<<mas[i][1]<<endl;
            notfound=false;
        }
    }
Yandex
Объявления
28.03.2016, 13:54     Строка: Найти цвет/цвета предмета, введенного с клавиатуры.
Ответ Создать тему
Опции темы

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