Sa se verifice daca dupa fiecare element negativ dintr-un vector se afla un element pozitiv.
Răspunsuri la întrebare
Răspuns:
#include <iostream>
using std::cout, std::cin, std::endl;
int main() {
int vectorNr[] = {-1, 2, 3, 4, -5, 8, -9, 5};
// int vectorNr[] = {-1, -2, 3, 4, -5, 8, -9, 5}; aici condiția e falsă
// int vectorNr[] = {-1, 2, 3, 4, -5, 8, -9, -5}; la fel și aici
bool conditie = true;
size_t dimensiuneVector = std::size(vectorNr);
if (vectorNr[dimensiuneVector - 1] < 0) {
cout << "Conditia nu este indeplinita, ultimul nr. din vec. este negativ! << endl;
return 1;
}
for (size_t i = 0; i < dimensiuneVector - 1; i++) {
if (vectorNr[i] < 0 && vectorNr[i + 1] < 0) {
conditie = false;
break;
}
}
(conditie == true)
? cout << "Dupa fiecare nr. negativ este unul pozitiv!" << endl
: cout << "Exista numere negative unul dupa celalat in vector!" << endl;
return 0;
}
Explicație:
Ai un vector cu numere, m-am gândit că dacă ultimul număr e negativ practic nu mai ai cum să ai un număr pozitiv după el deci teoretic ar trebui să fie falsă condiția ca după fiecare număr negativ să ai unul pozitiv, aici depinde de tine dacă vrei să ți cont de asta sau nu.
Ai practic un for care merge până la penultimul element ( ca atunci când verifici următorul element să nu accesezi memorie din afara vectorului ).
Dacă numărul curent este negativ și numărul următor este tot negativ setezi condiția la false și ieși din for.
Dacă nu intri în if-ul din for practic condiția rămâne adevărată.
La final afișezi în funcție de condiție.
#include
Using namespace std;
Int main()
{
Int a[101],i,n;
Cin>>n;
For(i=1;i<=n;i++)
{
Cin>>a[i];
If(a[i]<0&&a[i+1]<0)
Cout<<“dupa fiecare element negativ se afla un alt element negativ”;
Else
Cout<<“undeva se afla un element pozitiv dupa unul negativ”;
}
Return 0;
}
for(int i=0; i
if(ok) cout << "da";
else cout << "nu"