Informatică, întrebare adresată de bstroe13, 8 ani în urmă

Ți se dă șirul de înălțimi ca un șir de numere întregi, nenule, separate prin spațiu. Șirul de numere se încheie cu valoarea 0, care nu face parte din înălțimi (doar marchează finalul șirului). Să se precizeze dacă șirul de înălțimi este crescător, descrescător sau nemonoton. Spunem că un șir e nemonoton dacă nu este nici crescător, nici descrescător în întregime.

Date de intrare
Se dă un șir de numere naturale urmat de valoarea 0.

Date de ieșire
Se va afișa unul dintre mesajele crescator, descrescator sau nemonoton.

Restricții și precizări
Înălțimile sunt numere cuprinse între 0 și 10.000
Se vor citi maxim 1.000 de numere
0 nu face parte din șirul de înălțimi, doar marchează finalul șirului
Pentru simplitate, dacă toate numerele sunt egale sau nu există nicio valoare înaintea lui 0, șirul se consideră nemonoton
Exemple
Date de intrare Date de ieșire
1 2 5 5 10 11 0 crescator
16 7 3 0 descrescator
1 2 2 1 0 nemonoton
Limbaj c++, rezolvare prin while, if, cat mai simplu.


imihay14: Pb este si pe pbinfo? ca sa pot verifica cate puncte iau

Răspunsuri la întrebare

Răspuns de lucaciucandrei
0

#include <iostream>

using namespace std;

int main() {

   int x, y = 0, z = 2, k=0;

   cin >> x;

   while (x != 0) {

       y = x;

       cin >> x;

       if (z != 0 && x != 0) {

           if (x != y)

               k = 1;

           if (x >= y && (z == 2 || z == 1))

               z = 1;

           else

               if (x <= y && (z == 2 || z == -1))

                   z = -1;

               else

                   if (x >= y && z == -1)

                       z = 0;

                   else

                       if (x <= y && z == 1)

                           z = 0;

       }

   }

   if ((z==1 && k==0) || z == 0 || z == 2)

       cout << "nemonoton";

   if (z == 1)

       cout << "crescator";

   if (z == -1)

       cout << "descrescator";

   return 0;

}

Alte întrebări interesante