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

Ajutor! Cu if, else si while, va rog....nu cu for sau vectorii,etc...ca inca nu am invatat.
Paul se joacă un nou joc pe calculator. În el, trebuie să traverseze o zonă montană cât mai rapid posibil. Uitându-se pe harta jocului, el poate observa toate înălțimile terenului din jurul său. Astfel, el poate alege secvența de pași pe care să o facă pornind din punctul în care se află și până la destinație.
Fiind o zonă montană, e posibil ca drumul ales de Paul să urce, iar apoi să coboare pe munte. El se gândește că ar fi bine să evite un astfel de drum, deoarece ar însemna mai mult efort din partea lui. La fel, după ce a coborât o pantă, Paul ar prefera să nu trebuiască să urce din nou.
Cerință
Paul a desenat pe hartă un drum pe care ar putea să o ia pentru a ajunge la destinație. A notat înălțimea fiecărei bucăți de teren pe o hârtiuță, în ordinea în care trebuie să le parcurgă.
Ț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

Răspunsuri la întrebare

Răspuns de Utilizator anonim
3

Răspuns:

#include <iostream>

using namespace std;

int main() {

int a, b = 0, nr = 0, M = 2;

cin >> a;

if (a > 0 && a < 10000){

while (a != 0)

{

 b = a;

 cin >> a;

 if (M != 0 && a != 0)

 {

  if (a != b) {  

   nr = 1;  

  }

  if (a >= b && (M == 2 || M == 1))

  {

   M = 1;

  }

  else if (a <= b && (M == 2 || M == -1))

  {

   M = -1;

  }

  else if (a >= b && M == -1)

  {

   M = 0;

  }

  else if (a <= b && M == 1)

  {

   M = 0;

  }

 }

}

if ((M == 1 && nr == 0) || M == 0 || M == 2) {

 cout << "nemonoton";  

}

else if (M == 1) {

 cout << "crescator";  

}

else if (M == -1) {  

 cout << "descrescator";  

}

}

}

Explicație:


c10crys: Buna Alex....multumesc.....ai avut problema cu muntele? ms
Utilizator anonim: N-am inteles intrebarea :)). Ce problema cu munte?
c10crys: George este fan al drumețiilor pe munte. El crede că o excursie pe munte ii conferă o experiență adevărată dacă acesta are un singur vârf și mai mult, măsurând altitudinea din kilometru în kilometru și construind un șir cu aceste valori, șirul respectiv este un șir munte.
c10crys: asta Alex,am postat o la intrebari
c10crys: ms
Alte întrebări interesante