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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2025, 09:26   #1
vovamakarovych
Пользователь
 
Регистрация: 09.04.2019
Сообщений: 50
По умолчанию Функция проверяет, сортирован ли заданный массив по возростанию;

Я написал функцию но она не правильно работает и мне не нравится что я создал много значений .... Нужна ваша поиощь

Код:
bool isSorted(const int* arr, int size) 
{
    bool result = false;
    int count = size -  1;
    for (int i = 0; i < size; ++i) 
    {
        int temp = arr[i];
        if ((temp < arr[i + 1]))
        {
            if (count == i) 
            {
                result = true;
                break;
            }
           
        }
        else 
        {
            result = false;
        }
    }
    return result;
}
vovamakarovych вне форума Ответить с цитированием
Старый 22.01.2025, 11:20   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,821
По умолчанию

Что вы понаписали? У вас в школе была математика/логика/алгоритмы?
Зачем вы копируете элементы массива для сравнения? Почему у вас результат зависит, по задумке, только от последнего сравнения? Почему у вас выход за границу масива идет?

Все что нужно: изначально считать, что массив такой; проверять на несоответствие критерию и возвращать false - а не бегать дальше по массиву.
p51x вне форума Ответить с цитированием
Старый 22.01.2025, 13:18   #3
DeepFlake
Форумчанин
 
Регистрация: 16.05.2024
Сообщений: 186
По умолчанию

Сравнение соседних элементов массива по неубыванию:

Код:
#include <iostream>
#include <vector>
#include <cstddef>

bool IsSortedIncr( std::vector< int > x )
{
    bool result = true;
    for ( std::size_t a_index=0; a_index < x.size()-1; ++a_index )
    {
        if ( x.at( a_index ) > x.at( a_index+1 ) )
        {
            result = false;
            break;
        }
    }
    return result;
}

int main ()
{
    std::vector< int >    xarr = { 4, 6, 8, 23, 98 };

    std::cout << "Прверка на монотонное возрастание." << std::endl;
    std::cout << "Длина массива = " << xarr.size() << std::endl;
    std::cout << "Массив отсортирован по неубыванию: " << (::IsSortedIncr( xarr )?"Да":"Нет") << std::endl;

    return 0;
}
DeepFlake вне форума Ответить с цитированием
Старый 22.01.2025, 14:14   #4
сфинкс
Участник клуба
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 1,024
По умолчанию

5 минут и готова программа
на языке высочайшего уровня qbasic qb64
даже без проверки суммы нормальных значений

Код:
N = 3: Dim a(N): Randomize Timer ' maspor.bas
For k = 1 To 10
    For i = 1 To N: a(i) = Int(Rnd * 5) + 1: Print a(i);: Next
    For i = 1 To N - 1
        If a(i) > a(i + 1) Then Print "NO": GoTo 5
    Next
    Print "YES"
5 Next
Результат как 10 случайных вариантов случайных чисел вида:

2 5 2 NO
2 5 5 YES

Ниже пишущим переделать на другие языки кто-то мешает?
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую

Последний раз редактировалось сфинкс; 22.01.2025 в 17:17.
сфинкс вне форума Ответить с цитированием
Старый 22.01.2025, 15:26   #5
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,702
По умолчанию

Ну что сказать... Бесик и тут обозначился, в теме про Си. Вот неуёмный! (в необходимости буквы ё в последнем слове засомневался)
digitalis вне форума Ответить с цитированием
Старый 22.01.2025, 16:47   #6
DeepFlake
Форумчанин
 
Регистрация: 16.05.2024
Сообщений: 186
По умолчанию

"на языке высочайшего уровня qbasic"
"Бесик и тут обозначился, ... Вот неуёмный! "

Как много языков хороших .... а тянет всех на Бейсик. Потому что он у многих был первый
DeepFlake вне форума Ответить с цитированием
Старый 23.01.2025, 02:06   #7
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,810
По умолчанию

Цитата:
Сообщение от DeepFlake Посмотреть сообщение
Потому что он у многих был первый
И последний
Arigato вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заданный символьный массив (под windows) Dushlak1 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 21.04.2021 10:15
Упорядочить заданный массив Serg241 Паскаль, Turbo Pascal, PascalABC.NET 4 26.06.2016 13:07
Имеет ли заданный массив параболическую форму? 12345test12345 Помощь студентам 7 12.11.2013 20:12
переход на заданный сайт или как вставить в заданное место заданный текст Biker89 Общие вопросы Delphi 23 29.05.2011 01:59
статья - Функция GetKeyboardState копирует состояние 256 виртуальных клавиш в заданный буфер. Pblog Обсуждение статей 0 23.06.2010 05:13