Informatică, întrebare adresată de AndreiPredaFl, 9 ani în urmă

Puteti rezolva in c++,mai simplu,la nivel incepator a-9-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
Categorii


Utilizator anonim: #include <iostream>
Utilizator anonim: Using namespace std.
schmollstefan: int main()
{
int n,a,imp1=,imp2=0;
cin>>n;
cin>>a;
for(i=1;i<=n;i++)
{
cin>>a;
if(a%2!=0)
{
imp1=imp2;
imp2=a;
}
}
if(imp1==0|| imp2==0)
cout<<"Numere insuficiente";
else
cout<<imp1<<imp2;
}
AndreiPredaFl: mersi

Răspunsuri la întrebare

Răspuns de express
4
#include <iostream>
using namespace std;
int n, i, v[10005], p, q, nr;
int main()
{
    cin >> n;
    while(i < n)
    {
        i ++;
        cin >> v[i];
    }
    i = n;
    while(i >= 1 && nr <= 2)
    {
        if(v[i] % 2 == 1)
        {
            nr++;
            if (nr == 1) p = v[i];
            if (nr == 2) q = v[i];
        }
        i --;
    }
    if (nr < 2) cout << "Numere insuficiente";
    else  cout << q << " " << p;
    return 0;
}


AndreiPredaFl: mersi,[v]-e partea întreagă?
Alte întrebări interesante