Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 1
Регистрация: 12.08.2014
Сообщений: 65

ID выводится во все элементы массива, а не в 1, как исправить?

29.10.2014, 20:46. Показов 651. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Возникла проблема, сделал программу в которой можно "покупать" предметы, покупая предмет записывается ID предмета в массив, но у меня ID 1 предмета записывается в весь массив.

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
using std::cout;
int nPlayerMoney = 1000;
void displainv(int inv[], int sizen[]);
void shop();
void invent(int id, int siz)
{
    int inventory[10] {0,0,0,0,0,0,0,0,0,0};
    int invsize[10] {0,0,0,0,0,0,0,0,0,0};
        for (int i = 0; inventory[i] == 0; i++)
        {
            inventory[i] = id;
        }
        for (int a = 0; invsize[a] == 0; a++)
        {
            invsize[a] = siz;
        }
            displainv(inventory, invsize);
}
 
void displainv(int inv[], int sizen[])
{
    cout << "inv[0]=" << inv[0] << " size=" << sizen[0];
    cout << "inv[1]=" << inv[1] << " size=" << sizen[1];
    shop();
}
Вся проблема в циклах for.

Код полностью:
main.cpp:
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
#include <iostream>
#include "invent.cpp"
#include "shopcatalog.cpp"
using std::cout;
using std::cin;
using std::endl;
 
void shop();
 
int main()
{
    setlocale(LC_ALL, "rus");
        cout << "Тестинг программы\n-----------------\n\t1 - Магазин" << endl;
        int nMenu = 0;
            cin >> nMenu;
        cout << "------------------------------------" << endl;
                if (nMenu == 1)
                {
                    shop();
                }
}
 
void shop()
{
    cout << "\tМагазин:\n\t1 - Дерево" << endl;
 
        int nMenu = 0;
            cin >> nMenu;
 
                if (nMenu == 1)
                {
                    wood();
                }
}
invent.cpp:
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
using std::cout;
int nPlayerMoney = 1000;
void displainv(int inv[], int sizen[]);
void shop();
void invent(int id, int siz)
{
    int inventory[10] {0,0,0,0,0,0,0,0,0,0};
    int invsize[10] {0,0,0,0,0,0,0,0,0,0};
        for (int i = 0; inventory[i] == 0; i++)
        {
            inventory[i] = id;
        }
        for (int a = 0; invsize[a] == 0; a++)
        {
            invsize[a] = siz;
        }
            displainv(inventory, invsize);
}
 
void displainv(int inv[], int sizen[])
{
    cout << "inv[0]=" << inv[0] << " size=" << sizen[0];
    cout << "inv[1]=" << inv[1] << " size=" << sizen[1];
    shop();
}
shopcatalog.cpp:
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
using std::cout;
using std::cin;
using std::endl;
int main();
void invent(int id, int siz);
void buy(char names[],int id,int sizen,int mon);
// Здесь все предметы
void wood()
{
    char nName[] = "Wood";
    int id = 5;
    int sizen = 5;
    int mon = 200;
        buy(nName, id, sizen, mon);
}
 
 
 
// Покупка предмета
void buy(char names[], int id, int sizen, int mon)
{
    cout << "\tВы действительно хотите купить - " << names << " за - " << mon << " ?\n\t1 - Да\n\t2- Нет" << endl;
        int nMenu = 0;
        cin >> nMenu;
            if (nMenu == 1)
            {
                if (nPlayerMoney < mon)
                {
                    cout << "Не достаточно средств!";
                }
                if (nPlayerMoney >= mon)
                {
                    nPlayerMoney -= mon;
                        invent(id, sizen);
                }
            }
 
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.10.2014, 20:46
Ответы с готовыми решениями:

Вывести все элементы массива, абсолютные значения которых меньше 1 (выводится только последний элемент)
задание Вывести все элементы массива, абсолютные значения которых меньше 1. получился такой код: procedure TForm1.btn1Click(Sender:...

Как разделить все элементы одного массива на все элементы другого массива?
Как разделить все элементы одного массива на все элементы другого массива, и вывести все получившиеся значения в третий массив, с учётом...

Сформировать массив L из массивов A и B путем их слияния так, чтобы сначала располагались все элементы массива A, а затем все элементы массива B.
Задан массив A из N элементов и массив B из M элементов. Сформировать массив L из массивов A и B путем их слияния так, чтобы сначала...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.10.2014, 20:46
Помогаю со студенческими работами здесь

Сформировать и вывести на экран новый массив, который будет содержать вначале все элементы массива A(0), затем все элементы массива B(4)
Здравствуйте! Помогите написать парочку программ... 3. Даны массивы A(0) и B(4). Сформировать и вывести на экран новый массив,...

Переписать элементы массива А в массив В так, чтобы все отрицательные элементы располагались в начале массива, а все остальные в конце
очень нужна помощь Задача 10. Заполнить массив из 10 элементов с помощью генератора псевдослучайных чисел как положительными, так и...

Записать в третий массив все четные элементы первого массива, которые не входят во второй массив Исправить код
Такая задача: 1) Записать в третий массив все четные элементы первого массива, которые не входят во второй массив. 2) Записать в третий...

Умножить на 3 все элементы во второй половине массива A; Разделить на 2 все элементы массива A,
1.Умножить на 3 все элементы во второй половине массива a (считать, что в массиве чётное число элементов). 2. Разделить на 2 все...

Массив: Сформировать третий массив, в который включить все отрицательные элементы массива А и все максимальные элементы массива В.
Даны массивы целых чисел A и B. Сформировать третий массив, в который включить все отрицательные элементы массива А и все максимальные...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru