👤
a fost răspuns

Cerinţa
Se dau n numere naturale. Să se determine ultimele două numere impare, nu neapărat distincte, dintre cele date.

Date de intrare
Programul citeşte de la tastatură numărul n, apoi n numere naturale, dispuse pe mai multe linii.

Date de ieşire
Programul afişează pe ecran ultimele două numere impare dintre cele date, în ordinea în care au fost citite. Dacă nu au fost citite suficiente numere impare, se va afişa doar mesajul Numere insuficiente.

Restricţii şi precizări
0 < n <= 10.000
cele n numere citite vor avea cel mult 9 cifre

Exemplu
Date de intrare

8
12 15 68 13 17
90 31 42
Date de ieşire

17 31


C++


Răspuns :


hey,MatizArt  :))

#include <iostream>
using namespace std;
int main()
{  int n,i,v[100],v1[100],k=0;
     cout<<"Numarul numerelor:";cin>>n;
     for(i=1;i<=n;i++)
     {  cin>>v[i];
          if(v[i]%2!=0)
          {  v1[k]=v[i];
               k++;
          } }
   cout<<v1[k-2]<<" "<<v1[k-1];


}
Varianta 1 :

#include <iostream>
using namespace std;
 
int v[2];
 
int main() {
    int n, a;
    cin >> n;
    for(int i = 0; i < n; i++) {
        cin >> a;
        if(a % 2 == 1) {
            v[0] = v[1];
            v[1] = a;
        }
    }
    if(v[0] != 0)
        cout << v[0] << " " << v[1];
    else
        cout << "Numere insuficiente";
    return 0;
}


Varianta 2:

#include <iostream>
using namespace std;
 
int main() {
   int n, a, b, nr1 = -1, nr2 = -1;
   cin >> n >> a;
   int nr = 1;
   while(nr < n && a % 2 == 0){
     cin >> a;
     nr++;
   }
   nr1 = a;
   for(int i = nr; i < n; i++) {
     cin >> b;
     if(b % 2 == 1) {
       nr2 = nr1 ;
       nr1 = b;
     }
     a = b;
   }
   if(nr1 != -1 && nr2 != -1)
     cout << nr2 << " " << nr1;
   else
     cout << "Numere insuficiente";
    return 0;
}