
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.14.87] |
![]() |
|
Сообщ.
#1
,
|
|
|
Дана последовательность вещественных чисел, оканчивающаяся числом
10 000. Количество чисел в последовательности не меньше двух. Определить, является ли последовательность упорядоченной по возрастанию. В случае от- рицательного ответа определить порядковый номер первого числа, нарушаю- щего такую упорядоченность. |
![]() |
Сообщ.
#2
,
|
|
Сообщ.
#3
,
|
|
|
![]() ![]() #include <iostream> #include <iostream> #include <algorithm> #include <optional> int main() { double numbers[] = {1, 2, 5, 8, 1000}; auto p = std::find_if(std::begin(numbers), std::end(numbers), [prev = std::optional<double>()](double num) mutable { bool result = false; if (prev) result = num == 10000 || num < prev; prev = num; return result; }); if (p == std::end(numbers)) std::cout << "Input data doesn't finish with santinel!" << std::endl; else if (*p == 10000) std::cout << "Input data is ordered" << std::endl; // data is ordered else std::cout << "Input data is unordered. First unordered number index: " << std::distance(std::begin(numbers), p) << std::endl; } https://wandbox.org/permlink/Zw9e4mrrc8ipb0tA |
Сообщ.
#4
,
|
|
|
![]() ![]() #include <stdio.h> int CheckSeq(const long *Seq, int Size) { long Last = Seq[0]; for(int i=1; i<Size; i++) if (Last<Seq[i]) Last = Seq[i]; else return i; return -1; } int main(void) { const long SeqA[5] = {110000,210000,310000,410000,510000}; const long SeqB[5] = {110000,210000,510000,310000,410000}; int Ret = CheckSeq(&SeqA,5); if (Ret<0) printf("Последовательность SeqA - упорядочена\n"); else printf("Последовательность SeqA - неупорядочена, нарушение в индексе - %d\n", Ret); Ret = CheckSeq(&SeqB,5); if (Ret<0) printf("Последовательность SeqB - упорядочена\n"); else printf("Последовательность SeqB - неупорядочена, нарушение в индексе - %d\n", Ret); return 0; } Тест тут. ! Очередной раз - или пытаешься решить сам. Типа ... "я вот тут написал, но не получилось" ... Либо переводишь 5 WMZ за такой тип задач решающему. Если задача не интересна - должно быть тупо погашение времени на решение. Даже не столько времени, сколько погашение желания не писать. |
![]() |
Сообщ.
#5
,
|
|
Как-то так
![]() ![]() ![]() #include <vector> #include <algorithm> #include <iostream> #include <set> int main() { std::vector<int> v = {/* paste numbers here */}; std::set<int> s(v.begin(), v.end()); if(std::equal(s.begin(), s.end(), v.begin(), v.end())) { std::cout << "Increasing order\n"; } else { auto p = std::mismatch(v.begin(), v.end(), s.begin(), s.end()); std::cout << "Non-increasing order, first invalid position is " << p.first - v.begin(); } } |
Сообщ.
#6
,
|
|
|
Цитата OpenGL @ Как-то так Челу чисто Си нужон ![]() |