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??
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de sprijin, nu ezitați să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la favorite pentru acces rapid.