Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 23.12.2010
Сообщений: 11

исправьте ошибки в программе о рюкзаке

27.12.2012, 19:18. Показов 1466. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
не знаю в чём ошибка. после компиляции выдают не те результаты в конце

сам код

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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include<iostream>
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<iomanip>
using namespace std;
#define max_w 15
#define obj 6
int main()
{
int a[max_w+1][obj],p[6],w[6],temp=0,k=0,x[obj];
p[0]=3;p[1]=6;p[2]=7;p[3]=9;p[4]=11;p[5]=18;
w[0]=1;w[1]=2;w[2]=3;w[3]=5;w[4]=6;w[5]=8;
for(int j=0;j<obj;j++)
{
for(int i=0;i<max_w+1;i++)
{
if(i<w[j])
{
    if(i==0 || (j-1)<0)a[i][j]=0;
    else a[i][j]=a[i][j-1];
}
if(i>=w[j])
{
    if((j-1)<0)a[i][j]=p[j];
 else
{
    if(a[i][j-1]>(a[k][j-32]+p[j]))a[i][j]=a[i][j-1];
    else a[i][j]=a[k][j-1]+p[j];
                k++;
 }
     }
 }
     k=0;
 }
     for(int i=0;i<max_w+1;i++)
     {
for(int j=0;j<obj;j++)
{
cout<<setw(4)<<a[i][j]<<" ";
}
cout<<endl;
}
k=max_w;
cout<<"\nThe Answer is = ";
for(int i=obj-1;i>=0;i--)
{
if(a[k][i]!=a[k][i-1])
{
 x[i]=1;k=k-w[i];
}
        else if(i==0 && a[k][i]!=0)x[i]=1;
    else
        x[i]=0;
     }
 for(int i=0;i<obj;i++)cout<<x[i]<<" ";
 cout<<"\n\nThe maximum value is = "<<a[max_w][obj-1];
     _getch();
 }
Прямой ход на (С ++)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
for(int j=0;j<obj;j++){
for(int i=0;i<max_w+1;i++){
if(i<w[j]){
if(i==0 || (j-1)<0)a[i][j]=0;
else a[i][j]=a[i][j-1];
}
if(i>=w[j]){
if((j-1)<0)a[i][j]=p[j];
else{
if(a[i][j-1]>(a[k][j-1]+p[j]))a[i][j]=a[i][j-1];
else a[i][j]=a[k][j-1]+p[j];
k++;
}
}
}
k=0;
}
Обратный ход на (С++)

C++
1
2
3
4
5
6
7
8
9
10
for(int i=obj-1;i>=0;i--)
{
if(a[k][i]!=a[k][i-1])
{
    x[i]=1;k=k-w[i];
}
else if(i==0 && a[k][i]!=0)x[i]=1;
else
x[i]=0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.12.2012, 19:18
Ответы с готовыми решениями:

Исправьте ошибки в программе
Программа:Нужно ввести 2 числа и программа должна посчитать их сумму,частное,разделить,умножить и если в знаменателе будет &quot;0&quot;,...

Исправьте ошибки что найдете в моей программе.
помогите пожалуйста бедному студенту исправьте пожалуйста ошибки что найдете в моей программе программа читает матрицу проверяет или...

исправьте,пожалуйста,ошибки в программе
Цель задания:в матрице 10х10 найти кол-во локальных минимумов и сумму элементов(по модулю)выше главной диагонали,вот,что...

3
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
27.12.2012, 19:22
Никто разбирать простыню кода не будет. Более того это не форум экстрасенсов чтоб угадать условие задачи.

Как исправить:
1. Разбить задачу на подзадачи и проверить выполнение подзадач и потом их только объединять в одну.
2. Пользуйтесь отладчиком или выводите промежуточные результаты чтоб проверить выполнение каждого шага.
0
0 / 0 / 0
Регистрация: 23.12.2010
Сообщений: 11
27.12.2012, 20:05  [ТС]
Это задача о рюкзаке. есть контейнер в который нужно поместить предметы с определённым весом и ценой. чтобы набор из этих предметов был с максимальной ценой
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
28.12.2012, 17:12
Честно говоря не могу понять что делает ваша программа. Я даже не могу понять какой максимальный вес.
Что необходимо сделать.
1. Двухмерный массив для вариантов наполнения. Проинициализировать -1.
Кол-во вариантов для n предметов будет n!(количество перестановок)
2. Полным перебором заполняем варианты(то есть сохраняем индексы добавленных предметов). Тут необходимо добавить проверку переполнения и прерывать заполнение варианта если следуююший предмет переполнит(продолжать не надо. Если и есть предмет который еще может быть добавлен, то это покажет другой вариант). Тут же можно сразу считать и стоимость для всех вариантов(сохраняя её в другой массив).
3. Из всех вариантов выбираем тот, который имеет максимальную стоимость.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.12.2012, 17:12
Помогаю со студенческими работами здесь

Пожалуйста, исправьте ошибки в программе
var n:integer; a:array of string; //Переменная типа string, который будет пройден в след. уроке buf: string; i,j:integer; ...

Исправьте ошибки в программе (файл не найден)
при запуске программы в Turbo Pascal пишет файл не найден( var ch : char; f,sp: text; k,j,i:integer; st,a: string; b:char; ...

Исправьте ошибки в легкой программе и выложите рабочий вариант
#include &lt;stdio.h&gt; void sortirovka(int mas,int n); { for (i=0; i&lt;(n-1); i++) { for (j=(i+1); j&lt;n; j++) { if (mas&gt;mas) ...

Исправьте ошибки в программе удаления заданных элементов массива
Дали курсовую сделал и ошибка какая то, помогите исправить пожалуйста. Вот тема: Разработать в среде Turbo Pascal программу...

Исправьте ошибки в программе и запишите что будет напечатано на экране
War: a,b,c - integer, x: real; Bigin A=7, b=3,2, c:= a+b; Writln(summa= , c); C:=c/2; x:=a-c; Writeln( 'x= ' , x, 'kvadrat=...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru