Исправить вывод - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, помогите пожалуйста сделать вывод номера товара не "01-го, 11-го, 21-го", а 1-го, 2-го, 3-го вот код
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace DynamicKnapsack
{
    class Article //товар
    {
        public string name; //название товара
        public int weight; //вес товара
        public int price; //цена товара
        public bool take; //берем ли товар
 
        public Article(string n, int w, int p)
        {
            name = n;
            weight = w;
            price = p;
        }
    }
    
    class Program
    {
        public static Article[] articles;
        public static int numsArticle; // Количество товаров
        public static bool incorrEnter; //Переменная, что проверяет корректность ввода
        public static string name; // Имя товара
        public static int weight, price, maxWeight; // Вес и цена товара, размер рюкзака
        public static int[,] func; //массив для хранения значений функции
 
        // Метод выводит на экран рюкзак
        static void Print()
        {
            Console.WriteLine("\nМаксимальная стоимость: " + func[maxWeight, numsArticle-1]);
            Console.Write("Взяты следующие предметы: ");
            foreach (Article x in articles)
                if (x.take)
                    Console.Write(x.name + " ");
        }
 
        static void Main(string[] args)
        {
            int s, n, i; //просто переменные :)          
            //Введем количество товаров
            do 
            {
                incorrEnter = false;
                Console.Write("\nКакое количество товаров вы рассматриваете для приобретения: ");
                try 
                {
                    numsArticle = Convert.ToInt32(Console.ReadLine());
                }
                catch(FormatException) 
                {
                    incorrEnter = true;
                    numsArticle = 0;
                }
            } while (incorrEnter);
 
            articles = new Article[numsArticle]; //Создаем массив заданного размера
 
            //Создадим объекты товаров
            for (i = 0; i < articles.Length; i++)
            {
                Console.Write("\n\nВведите название " + i+1 + "-го товара: ");
                name = Console.ReadLine();
                do
                {
                    incorrEnter = false;
                    Console.Write("Введите вес товара: ");
                    try
                    {
                        weight = Convert.ToInt32(Console.ReadLine());
                    }
                    catch (FormatException)
                    {
                        incorrEnter = true;
                        weight = 0;
                    }
                } while (incorrEnter);
                do
                {
                    incorrEnter = false;
                    Console.Write("Введите цену товара: ");
                    try
                    {
                        price = Convert.ToInt32(Console.ReadLine());
                    }
                    catch (FormatException)
                    {
                        incorrEnter = true;
                        price = 0;
                    }
                } while (incorrEnter);
                articles[i] = new Article(name, weight, price); //Создаем объект
            }
 
            // Введем размер рюкзака
            do
                {
                    incorrEnter = false;
                    Console.Write("\nВведите размер вашего рюкзака (контейнера): ");
                    try
                    {
                        maxWeight = Convert.ToInt32(Console.ReadLine());
                    }
                    catch (FormatException)
                    {
                        incorrEnter = true;
                        maxWeight = 0;
                    }
                } while (incorrEnter);
 
            func = new int[maxWeight+1, numsArticle]; //Реализуем массив функции
 
            //Реализуем алгоритм Беллмана
            for (weight = 1; weight <= maxWeight; weight++) // Загружаем рюкзак если его вместимость = Weight
                for (i = 1; i < numsArticle; i++) // берем предметы с 1 по numsArticle
                    //если вес предмета больше Weight, или предыдущий набор лучше выбираемого
                    if (articles[i].weight > weight)
                    {
                        func[weight, i] = func[weight, i - 1]; //тогда берем предыдущий набор
                        articles[i].take = false;
                    }
                    else if (func[weight, i - 1] >= (func[weight - articles[i].weight, i - 1] + articles[i].price))
                    {
                        func[weight, i] = func[weight, i - 1]; //тогда берем предыдущий набор
                        articles[i].take = false;
                    }
                    else
                    {
                        func[weight, i] = func[weight - articles[i].weight, i - 1] + articles[i].price; //иначе добавляем к предыдущему набору текущий предмет
                        articles[i].take = true;
                    }
 
            Print();
            
            Console.ReadKey();
        }
    }
}

Решение задачи: «Исправить вывод»

textual
Листинг программы
Console.Write("\n\nВведите название " + (i+1) + "-го товара: ");

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.692 из 5
Похожие ответы