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

Проверить, являются ли числа в массиве возрастающими?

28.08.2012, 20:16. Показов 1866. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток, долго боролся над данной проблемой, изменял код по всячески, пробовал разные проверки на возрастание, все впустую. Программа по первому условию судит все массивы - если сначала проверять на невозрастание, то все введенные массивы она признает такими, и наоборот.
Прилагаю код и очень надеюсь на вашу помощь. Желательно указать на ошибку, а не переписывать с нуля. спасибо заранее.
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
const int size = 5;
int main()
{
bool a;
int mas[size];
for (int i = 0; i < size; i++)
cin >> mas[i];
for (int i = 0; i < size; i++)
if (mas[i] <= mas[i+1])
a = true;
else 
a = false;
if (a == true)
cout << "true" << endl;
else
cout << "false" << endl;
system ("PAUSE >> null");
    }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.08.2012, 20:16
Ответы с готовыми решениями:

Определить являются ли цифры, из которых состоит число, возрастающими
Подскажите (а лучше киньте ссылку), что где почитать чтобы решить эти задачки: 1) дано натуральное число. определить являются ли цифры,...

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

Проверить, являются ли данные числа С и D соответственно квадратом и кубом числа А
Составить алгоритм, печатающий значение &quot;Истина&quot; если указанное высказывание является истинным, и &quot;Ложь&quot; в противном случае:...

13
~ Эврика! ~
 Аватар для OhMyGodSoLong
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
28.08.2012, 20:21
Эм. Проходим по массиву слева направо. Пока array[i - 1] < array[i], ничего не делаем. Если это условие нарушается, то тут же выходим из цикла (break;). Если условие было нарушено (заведите флажок для этого), то числа не возрастающие.
0
 Аватар для Andrey.K
348 / 269 / 128
Регистрация: 14.11.2010
Сообщений: 482
28.08.2012, 20:21
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
const int size = 5;
int main()
{
    bool a=true;
    int mas[size];
    for (int i = 0; i < size; i++)
        cin >> mas[i];
    for (int i = 0; i < size-1; i++)
        if (mas[i] > mas[i+1])
            { a=false; break; }
    if (a == true)
        cout << "true" << endl;
    else
        cout << "false" << endl;
    system ("pause");
    return 0;
}
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
28.08.2012, 20:35
Цитата Сообщение от Andrey.K Посмотреть сообщение
if (a == true)
C++
1
if (a)
1
 Аватар для Andrey.K
348 / 269 / 128
Регистрация: 14.11.2010
Сообщений: 482
28.08.2012, 20:46
Цитата Сообщение от neske Посмотреть сообщение
C++
1
if (a)
я подправил его код, но замечание дельное!!!
0
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
28.08.2012, 21:27
можно компактнее записать:
C
1
2
3
4
5
6
int check(int *a, int *end)
{
   return a < end ? (*(a-1) <= *a && check(a+1, end)) : 1;
}
 
check(a+1, a+N);
0
0 / 0 / 0
Регистрация: 28.08.2012
Сообщений: 3
28.08.2012, 21:28  [ТС]
большое спасибо за участие и оперативный ответ, я правда еще должен посравнивать коды, что бы все понять, однако сразу бросилась в глаза функция
return 0;
понятно, что эта функция возвращает какой-то ноль, но я новичек и не очень понял ее суть...
я не очень понял, где мой код давал слабину, однако, что бы он заработал, достаточно было всего лишь проверять на непоследовательность и вписать брейк. все же немного прояснилась ситуация. еще раз спасибо, добра всем.
0
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
28.08.2012, 21:40
Цитата Сообщение от Actionhank Посмотреть сообщение
я не очень понял, где мой код давал слабину
Ваш код, по сути, проверял утверждение:
верно ли, что a[size-1] <= a[size],
при этом в массиве нет элемента с индексом size. Вот и все, что делал ваш код. То есть вы сравниваете только одну пару элементов, а информация о предыдущих парах у вас теряется. Можно так сделать:

C
1
2
3
for(i = 1; i < size && a[i-1] <= a[i]; ++i)
   ;
puts(i >= size ? "yes" : "no");
1
0 / 0 / 0
Регистрация: 28.08.2012
Сообщений: 3
28.08.2012, 21:45  [ТС]
Цитата Сообщение от Thinker Посмотреть сообщение
Ваш код, по сути, проверял утверждение:
верно ли, что a[size-1] <= a[size],
при этом в массиве нет элемента с индексом size. Вот и все, что делал ваш код. То есть вы сравниваете только одну пару элементов, а информация о предыдущих парах у вас теряется. Можно так сделать:

C
1
2
3
for(i = 1; i < size && a[i-1] <= a[i]; i++)
   ;
puts(i >= size ? "yes" : "no");
значит, если бы я не использовал сайз, а массив был бы с фиксированным числом элементов, то проблемы бы не возникло?
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
28.08.2012, 21:46
std::is_sorted
0
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
28.08.2012, 21:48
Цитата Сообщение от Actionhank Посмотреть сообщение
значит, если бы я не использовал сайз, а массив был бы с фиксированным числом элементов, то проблемы бы не возникло?
Да нет, вы не так поняли. На примере.
2 1 3
Сначала вы сравнили 2 и 1 (2 > 1, то есть условие не выполнено и пора бы остановиться), но вы идете дальше и сравниваете 1 и 3 и т.д., забывая при этом, что 2>1 и массив не упорядочен по возрастанию.
0
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,852
28.08.2012, 21:59
Цитата Сообщение от Andrey.K Посмотреть сообщение
if (mas[i] > mas[i+1])
{ a=false; break; }
пропускает одно условие если (mas[i] == mas[i+1])
а это уже не возрастание
или так
C++
1
if (mas[i] >= mas[i+1])
или так
C++
1
if (!(mas[i] < mas[i+1]))
0
 Аватар для Leonman
15 / 15 / 4
Регистрация: 17.06.2012
Сообщений: 274
29.08.2012, 11:49
Thinker, А где строчка a[size-1] <= a[size]?
0
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
29.08.2012, 12:34
Цитата Сообщение от Leonman Посмотреть сообщение
Thinker, А где строчка a[size-1] <= a[size]?
В коде ТС
C++
1
2
3
4
5
for (int i = 0; i < size; i++)
   if (mas[i] <= mas[i+1]) 
      a = true;
   else 
      a = false;
посмотрите что будет на последнем шаге итерации. Именно последний шаг и будет результатом всего алгоритма. Поэтому этот цикл эквивалентен условию

C++
1
2
3
4
   if (mas[size-1] <= mas[size]) 
      a = true;
   else 
      a = false;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.08.2012, 12:34
Помогаю со студенческими работами здесь

Проверить, являются ли числа простыми
задание Составить программу для проверки утверждения: &quot;Результатами вычислений по формуле x^2+x+41, при 0&lt;x&lt;40 являются простые...

Проверить, что все элементы в массиве являются true или false
Здравствуйте, наткнулся на такую задачку и теперь мучаюсь, не могу решить. Подскажите, как создать метод, который проверяет массив...

Проверить, являются ли заданные числа дружественными
Даны два натуральных числа. Проверить, являются ли они дружественными. Для подсчета суммы собственных делителей числа составить подрограмму.

Проверить являются ли числа последовательности простыми
через do while:Вводится последовательность из N целых чисел. Каждое число проверить, простое оно или нет. Увеличить его значение на...

Проверить, являются ли заданные числа четными
Даны целые числа а и b. 1. Являются ли эти числа четными; вывести на экран только те числа, которые будут четными, либо сообщение «все...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru