👤

Verificare șir in C++
Să se verifice dacă un șir format din 4 numere întregi este monoton crescător sau descrescător.

Date de intrare
Programul citește cele 4 elemente ale șirului.

Date de ieșire
Programul afișează mesajul Crescator, dacă șirul este monoton crescător, Descrescator dacă este monoton descrescător sau Nemonoton în caz contrar.

Restricții
Elementele șirului sunt numere întregi cuprinse între -100 și 100.
Pentru simplitate, dacă un șir este constant (adică are toți termenii egali) îl vom considera nemonoton.
Exemplu
Date de intrare Date de ieșire
9 5 2 1 Descrescator
1 1 5 9 Crescator
1 2 -3 9 Nemonoton

Am rezolvat problema in doua moduri dar primesc niste avertizari de care nu pot sa scap.

#include
using namespace std;

int main() {
int a, b, c, d;
cin >> a >> b >> c >> d;
if ((a <= b && b <= c && c < d) || (a <= b && b < c && c <= d) || (a < b && b <= c && c <= d)) {
cout << "Crescator";
} else if ((a >= b && b >= c && c > d) || (a >= b && b > c && c >= d) || (a > b && b >= c && c >= d)) {
cout << "Descrescator";
} else {
cout << "Nemonoton";
}
return 0;
}

Acest cod imi da o avertizare "Cyclomatic complexity of this function in over 15 [high-complexity]";

A doua varianta :

#include
using namespace std;

int main() {
int a, b, c, d;
cin >> a >> b >> c >> d;
if (a == b && b == c && c == d) {
cout << "Nemonoton";
} else if (a <= b && b <= c && c <= d) {
cout << "Crescator";
} else if (a >= b && b >= c && c >= d) {
cout << "Descrescator";
} else {
cout << "Nemonoton";
}
return 0;
}

La acest cod primesc avertizarea: "repeated branch in conditional chain [bugprone-branch-clone]";

Are cineva vreo idee cum sa scap de aceste avertizari??


Răspuns :

Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Nu ezitați să ne contactați pentru orice întrebare sau dacă aveți nevoie de asistență suplimentară. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!


ID Learners: Alte intrebari