Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
 Аватар для sergei60
50 / 31 / 11
Регистрация: 10.06.2012
Сообщений: 395

Работа с массивом строк

11.09.2015, 19:52. Показов 1285. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, есть такая простая задача. 3 корзинки . в одной яблоко ,слива и банан, в другой персик и мандарин, в третьей апельсин и лимон. Нужно взять из каждой корзинки по одному фрукту. Сколько вариантов получится и перечислить их? Это из 3 класса с помощью дерева возможностей решается вручную . .Получается 12 вариантов. А можно прогу написать чтобы комп выдал варианты и их колличество ?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.09.2015, 19:52
Ответы с готовыми решениями:

Работа с массивом строк
Ребята помогите с реализацией сортировки методом шейкера.Очень нужно. Задание такое: Сортировка Шейкером. Массив строк. Мне не...

Работа с массивом строк в С
#include <stdio.h> #include <conio.h> #include <string.h> #include <vector> int main() { char *units1 = { "zero",...

Работа с массивом строк
Ввести массив строк символов (текст). В каждой строке найти длину самого ко-роткого слова. Словами считать группы символов, разделённые...

14
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
11.09.2015, 19:54
Цитата Сообщение от sergei60 Посмотреть сообщение
Сколько вариантов получится и перечислить их?
Да.


Цитата Сообщение от sergei60 Посмотреть сообщение
А можно прогу написать чтобы комп выдал варианты и их колличество ?
Конечно.
C++
1
2
3
4
5
6
#include <iostream>
 
int main()
{
    std::cout << 12 << std::endl;
}
0
 Аватар для sergei60
50 / 31 / 11
Регистрация: 10.06.2012
Сообщений: 395
11.09.2015, 19:58  [ТС]
я не прошу у вас писать программу ,просто дать направление с чего начать ,что в этом направлении прочитать и освоить.
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
11.09.2015, 20:02
Цитата Сообщение от sergei60 Посмотреть сообщение
что в этом направлении прочитать и освоить.
Пардон. Не так тебя понял. Почитай: переборы и перестановки (высшая математика).
1
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
11.09.2015, 20:26
Лучший ответ Сообщение было отмечено sergei60 как решение

Решение

sergei60,
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 <iomanip>
#include <string>
#include <windows.h>
using namespace std;
 
int main(void)
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    string fruits1[3] =
    {
        "яблоко", "слива", "банан"
    };
    string fruits2[2] =
    {
        "персик", "мандарин"
    };
    string fruits3[2] =
    {
        "апельсин", "лимон"
    };
    cout << "12 вариантов:\n" << endl;
    for (int i(0); i < 3; i++)
        for (int j(0); j < 2; j++)
            for (int k(0); k < 2; k++)
                cout 
                << fruits1[i] << ' ' << fruits2[j]
                << ' ' << fruits3[k] << endl;
    cout << endl;
    system("pause");
    return 0;
}
1
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
11.09.2015, 20:27
Ferrari F1,
Цитата Сообщение от sergei60 Посмотреть сообщение
я не прошу у вас писать программу
1
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
11.09.2015, 20:36
castaway, мне просто нравится решать всякие задачки) сдержаться не смог)

Добавлено через 7 минут
Цитата Сообщение от sergei60 Посмотреть сообщение
что в этом направлении прочитать и освоить
В данном случае используется формула расчета сочетаний без повторений (раздел комбинаторики).
https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
{C} _{3}^{1} * {C} _{2}^{1} * {C} _{2}^{1} = 12<br />
3
 Аватар для sergei60
50 / 31 / 11
Регистрация: 10.06.2012
Сообщений: 395
11.09.2015, 20:38  [ТС]
Ferrari F1, спасибо большое, все оказалось намного проще.
0
11.09.2015, 20:40

Не по теме:

sergei60, а почему лучший ответ с кодом, а не с комбинаторикой? Тебе же не программа нужна была.

0
 Аватар для sergei60
50 / 31 / 11
Регистрация: 10.06.2012
Сообщений: 395
11.09.2015, 20:49  [ТС]
castaway, да, ответ в смысле подсказки плох , я хотел сам разобраться как эту задачку реализовать в с++ ,согласен,. комбинаторику тоже читаю ,и тебе спасибо за направление. Вот теперь вопрос для себя возник ,а как написать так код ,чтобы выдавало уже посчитанные варианты.
0
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
11.09.2015, 20:56
Цитата Сообщение от sergei60 Посмотреть сообщение
чтобы выдавало уже посчитанные варианты.
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
#include <iostream>
#include <iomanip>
#include <string>
#include <windows.h>
using namespace std;
 
int main(void)
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    string fruits1[] =
    {
        "яблоко", "слива", "банан"
    };
    string fruits2[] =
    {
        "персик", "мандарин"
    };
    string fruits3[] =
    {
        "апельсин", "лимон"
    };
    int count(0);
    for (int i(0); i < sizeof(fruits1) / sizeof(string); i++)
        for (int j(0); j < sizeof(fruits2) / sizeof(string); j++)
            for (int k(0); k < sizeof(fruits3) / sizeof(string); k++)
            {
                cout
                    << fruits1[i] << ' ' << fruits2[j]
                    << ' ' << fruits3[k] << endl;
                count++;
            }
    cout << "\nИтого: " << count << " вариантов.\n" << endl;
    system("pause");
    return 0;
}
1
 Аватар для sergei60
50 / 31 / 11
Регистрация: 10.06.2012
Сообщений: 395
13.09.2015, 19:38  [ТС]
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
#include <iostream>
#include <iomanip>
#include <string>
 
using namespace std;
 
int main(void)
{
    string fruits1;
    cout<<"введем члены первой корзины";
   getline(cin,fruits1);
   cout<<fruits1<<endl;
  
    string fruits2[] =
    {
      "яблоко", "груша"
    };
    string fruits3[] =
    {
        "персик ", "слива"
    };
       
   int sum=0;
    for (int i(0); i < 3; i++)
        for (int j(0); j < 2; j++)
         for (int r(0); r< 2; r++){
           
              
             cout   << fruits1[i] << ' ' << fruits2[j]
                << ' ' <<fruits3[r] << endl;
   
    sum++;
}
cout<<"\nИтого: " << sum << " вариантов.\n" << endl;
 
  
    return 0;
}
Решил усовершенствовать код. Допустим пользователь вводит названия сам. Но что то не выходит. Что? я попробовал поэкспериментировать над первой корзинкой. вот вывод этого кода.

введем члены первой корзины дыня,арбуз,кабачек
дыня,арбуз,кабачек
яблоко персик
яблоко слива
груша персик
груша слива
� яблоко персик
� яблоко слива
� груша персик
� груша слива
� яблоко персик
� яблоко слива
� груша персик
� груша слива

Итого: 12 вариантов.
0
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
13.09.2015, 20:18
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
#include <iostream>
#include <iomanip>
#include <string>
#include <windows.h>
using namespace std;
 
int main(void)
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    const int LIM(10);
    string fruits1[LIM];
    cout << "Сколько фруктов хотите ввести? (не больше " << LIM << ")" << endl;
    int j; cin >> j;
    cout << "Введите фрукты через пробел:" << endl;
    for (int i(0); i < j; i++)
        cin >> fruits1[i];
    cout << endl;
 
    string fruits2[] =
    {
        "персик", "мандарин"
    };
    string fruits3[] =
    {
        "апельсин", "лимон"
    };
    int count = 0;
    for (int i(0); i < j; i++)
        for (int j(0); j < sizeof(fruits2) / sizeof(string); j++)
            for (int k(0); k < sizeof(fruits3) / sizeof(string); k++)
            {
                cout
                    << fruits1[i] << ' ' << fruits2[j]
                    << ' ' << fruits3[k] << endl;
                count++;
            }
    cout << "\nИтого: " << count << " вариантов.\n" << endl;
    system("pause");
    return 0;
}
0
 Аватар для sergei60
50 / 31 / 11
Регистрация: 10.06.2012
Сообщений: 395
14.09.2015, 09:27  [ТС]
При выполнении этого кода идет предупреждение :

g++ -Wall -o "дерево возможностей" "дерево возможностей.cpp" -g -std=c++0x (в каталоге: /home/sergei/с++ коды)
дерево возможностей.cpp: В функции «int main()»:
дерево возможностей.cpp:27:59: предупреждение: сравнение знакового и беззнакового целых выражений [-Wsign-compare]
дерево возможностей.cpp:28:63: предупреждение: сравнение знакового и беззнакового целых выражений [-Wsign-compare]
Сборка прошла успешно.
это в отношение строчек кода
C++
1
2
        for (int j(0); j < sizeof(fruits2) / sizeof(string); j++)
            for (int k(0); k < sizeof(fruits3) / sizeof(string); k++)
Вообще эта конструкция для меня остается непонятной и не могу нигде найти объяснение. Может кто то подскажет.
0
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
14.09.2015, 10:23
sergei60, замени все слова int, встречающиеся в коде на size_t
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.09.2015, 10:23
Помогаю со студенческими работами здесь

Работа с массивом строк. Конкатенация.
1. Обнаружено, что в тексте пропущены некоторые слова и словосочетания. Они поданы отдельным списком в том порядке, в котором должны быть...

Определить номера тех строк целочисленной матрицы A[N,K], которые совпадают с массивом D[K], если таких строк нет - выдать соответствующее сообщение
Неправильно определяет номера строк, либо вообще определяет строки не совпадающие с D. Не могу найти ошибку, прошу помочь. Вот код: ...

Добавить в ресурсы массив строк и связать его с массивом строк формы
Есть начальный список из 100 SmallString-строк, содержащих пробелы и массив строк String s; Всего один раз при первой загрузке этот...

Работа с массивом строк. Подсчет строк определенного содержания
Сейчас выглядит это так: listBox2.Items.Clear(); listBox1.Items.Clear(); String filename =...

Работа с текстовым файлом и массивом строк
Доброго времени суток, уважаемые программисты! Возникла у меня задачка, никак не могу решить... :wall: Предположим, есть программа,...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru