Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2017, 16:24   #1
RickeyF
Пользователь
 
Регистрация: 19.05.2017
Сообщений: 24
По умолчанию Оптимизировать код.

Напишите метод который в качестве входных параметров принимает массив целых чисел. Результатом работы метода является индекс максимального элемента массива. Вот такая задача, набросал кода, но может можно сделать проще?
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication1
{
    class PassOb
    {
        public static int MaxInd(int[] nums)
        {
            int max;
            int ind;
 
            max = nums[0];
            ind = 0;
            for (int i = 1; i < nums.Length; i++)
            {
                if (max < nums[i])
                {
                    max = nums[i];
                    ind = i;
                }
            }
 
            return ind;
        }
        static void Main(string[] args)
        {
            int a;
            int i;
            int j = 0;
            //Запрашиваем длину массива
            Console.WriteLine("Введите длину массива");
            j = Convert.ToInt32(Console.ReadLine());
            int[] arr = new int[j];
            //Вводим массив с клавиатуры
            for (i=0; i<arr.Length;i++)
            {
                Console.WriteLine("Введите число "+(i+1));
                arr[i] = Convert.ToInt32(Console.ReadLine());
            }
            //Выводим массив
            Console.WriteLine("Ваш массив\n");
            for (i=0; i<arr.Length;i++)
            {
                Console.Write(arr[i]+" ");
            }
            //Вызываем метод
            a = MaxInd(arr);
            Console.WriteLine("\nИндекс Макс Числа="+a);
            Console.ReadKey();
 
        }
    }
}
RickeyF вне форума Ответить с цитированием
Старый 04.07.2017, 17:30   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

во-первых, при поиске индекса НЕ нужна переменная для хранения самого максимального значения:
Код:
        public static int MaxInd(int[] nums)
        {
            int ind = 0;
            for (int i = 1; i < nums.Length; i++)
            {
                if (nums[ind] < nums[i])
                {
                    ind = i;
                }
            }
            return ind;

а во-вторых, так не проще?

Код:
int maxIndex = Array.IndexOf(arr, arr.Max());
Console.WriteLine("\nИндекс Макс Числа = [0]",maxIndex);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.07.2017, 01:06   #3
RickeyF
Пользователь
 
Регистрация: 19.05.2017
Сообщений: 24
По умолчанию

Так а как будет выглядеть полностью проект с этим кодом? Я вставляю а у меня пишет тип не используется arr и тд.
RickeyF вне форума Ответить с цитированием
Старый 05.07.2017, 11:17   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от RickeyF Посмотреть сообщение
Регистрация: 19.05.2017
Сообщений: 9
Репутация: 10

Так а как будет выглядеть полностью проект с этим кодом?
так:

Код:
using System;
using System.Linq;

namespace ConsoleApplication1
{
    class PassOb
    {
        static void Main(string[] args)
        {
            //Запрашиваем длину массива
            Console.WriteLine("Введите длину массива");
            int n = Convert.ToInt32(Console.ReadLine());
            int[] arr = new int[n];
            //Вводим массив с клавиатуры
            for (int i=0; i<arr.Length;i++)
            {
                Console.WriteLine("Введите число "+(i+1));
                arr[i] = Convert.ToInt32(Console.ReadLine());
            }
            //Выводим массив
            Console.WriteLine("Ваш массив\n");
            for (int i=0; i<arr.Length;i++)
            {
                Console.Write(arr[i]+" ");
            }
            

		int maxIndex = Array.IndexOf(arr, arr.Max());
		Console.WriteLine("\nИндекс Макс Числа = {0}",maxIndex);
			
		Console.ReadKey();
 
        }
    }
}
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оптимизировать код. Demetros Microsoft Office Excel 6 29.04.2015 00:11
Оптимизировать код Алексей_2012 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 58 19.02.2013 00:13
Оптимизировать код strannick Microsoft Office Excel 9 14.11.2012 00:59
Оптимизировать код satka Microsoft Office Access 2 01.12.2011 14:36
Оптимизировать код) Pein95 Паскаль, Turbo Pascal, PascalABC.NET 1 11.11.2011 18:42