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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2021, 13:45   #1
dmmelg
Пользователь
 
Регистрация: 01.11.2021
Сообщений: 14
По умолчанию есть 2 способа решения. через Sort и через "пузырьковый" метод. я не понимаю зачем тут пишется про false и true

Дан одномерный массив элементов типа int. Необходимо определить, отсортированы ли все элементы этого массива по возрастанию. Разработайте подпрограмму, которая бы решала поставленную задачу.

Данные для тестирования.

Пример 1 - результат должен быть true.

int[] arr1 = {-8, -2, 0, 5, 5, 11, 16, 24, 24};

Пример 2 - результат должен быть false.

int[] arr2 = {-8, -2, 0, 5, 4, 11, 16, 24, 24};

Пример 3 - результат должен быть true.

int[] arr3 = {24};
dmmelg вне форума Ответить с цитированием
Старый 03.11.2021, 13:48   #2
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

и в чем проблема? один цикл...
ForenLi вне форума Ответить с цитированием
Старый 03.11.2021, 14:09   #3
dmmelg
Пользователь
 
Регистрация: 01.11.2021
Сообщений: 14
По умолчанию

вот меня смутила его формулировка. я знаю, что есть 2 способа решения. через Sort и через "пузырьковый" метод. я не понимаю зачем тут пишется про false и true
dmmelg вне форума Ответить с цитированием
Старый 03.11.2021, 14:09   #4
dmmelg
Пользователь
 
Регистрация: 01.11.2021
Сообщений: 14
По умолчанию

int[] numbers = new int[] { -8, -2, 0, 5, 5, 11, 16, 24, 24 };
Array.Sort(numbers);
foreach (int n in numbers)
Console.WriteLine(n);

я выбрала такой, для решения задачи, так как он самый компактный
dmmelg вне форума Ответить с цитированием
Старый 03.11.2021, 14:16   #5
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

И он неправильный. Вам НЕ НАДО сортировать, НЕ НАДО изменять массив, НАДО в цикле пройтись и проверить упорядоченность.
ForenLi вне форума Ответить с цитированием
Старый 09.11.2021, 21:40   #6
NeLirik
Пользователь
 
Регистрация: 09.11.2021
Сообщений: 11
По умолчанию

Я решил задачу так. Для каждого частного случая.

Код:
namespace Check_Array
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] arr1 = { -8, -2, 0, 5, 5, 11, 16, 24, 24 };

            int[] arr2 = { -8, -2, 0, 5, 4, 11, 16, 24, 24 };
                             
             int[] arr3 = { 24 };

            int tmp = arr1[0];
            for (int i = 0; i <= arr1.Length; i++)
            {
                if (i == arr1.Length) { Console.Write("\n Массив 1 отсортирован  \t True выводим!!!"); break; }
                if (arr1[i] < tmp) { Console.Write("\n Массив 1 не отсортирован: {0} меньше {1} \t False выводим!!!", Convert.ToString(arr1[i]), Convert.ToString(tmp)); break; }
                if (arr1[i] >= tmp) { tmp = arr1[i]; }

            }
             tmp = arr2[0];
            for (int i = 0; i <= arr2.Length; i++)
            {
                if (i == arr2.Length) { Console.Write("\n Массив 2 отсортирован  \t True выводим!!!"); break; }
                if (arr2[i] < tmp) { Console.Write("\n Массив 2 не отсортирован: {0} меньше {1}  это элемент №{2}\t False выводим!!!", Convert.ToString(arr2[i]), Convert.ToString(tmp), Convert.ToString(i)); break; }
                if (arr2[i] >= tmp) { tmp = arr2[i]; }

            }
             tmp = arr3[0];
            for (int i = 0; i <= arr3.Length; i++)
            {
                if (i == arr3.Length) { Console.Write("\n Массив 3 отсортирован  \t True выводим!!!"); break; }
                if (arr3[i] < tmp) { Console.Write("\n Массив 3 не отсортирован: {0} меньше {1}  это элемент №{2}\t False выводим!!!", Convert.ToString(arr3[i]), Convert.ToString(tmp), Convert.ToString(i)); break; }
                if (arr3[i] >= tmp) { tmp = arr3[i]; }

            }




            Console.ReadKey();
        }
        
    }
!!!Обратите внимание цикл задан на одну единицу больше чем длина массива!!!

Это сделано, чтобы получить надпись TRUE.
Можно было и переменную типа Boolean ввести.

Последний раз редактировалось BDA; 10.11.2021 в 01:04.
NeLirik вне форума Ответить с цитированием
Старый 16.11.2021, 15:12   #7
dmmelg
Пользователь
 
Регистрация: 01.11.2021
Сообщений: 14
По умолчанию

NeLirik,
спасибо вам за ответ! буду смотреть, решила немного иначе)
dmmelg вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перегрузка true и false bearstrong Помощь студентам 3 04.08.2017 16:52
True И False noisor Паскаль, Turbo Pascal, PascalABC.NET 15 16.11.2014 20:40
Задачи на true и false Bekzat Помощь студентам 1 06.12.2011 18:20
False,True Jony Wocker Общие вопросы C/C++ 2 06.02.2010 00:42
Проверка (True or False for CheckBox) NeiL Общие вопросы Delphi 5 31.01.2008 09:42