Informatică, întrebare adresată de Utilizator anonim, 9 ani în urmă

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ăspunsuri la întrebare

Răspuns de JolieJulie
7

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];


}

Utilizator anonim: Ce ai cu Matiz? :))))
JolieJulie: pai nu te cheama pe tine asa? Mat iz ?
JolieJulie: :D
Utilizator anonim: MathIsArt :))))
Utilizator anonim: Dar spune-mi cum vrei
Utilizator anonim: Matiz nu e numele meu :)))
rossetta: Este posibil ca acesta rezolvare sa intampine dificultati pentru 100 < n <= 10000 (Segmentation Fault / Killed by signal 11 / Runtime error)
Răspuns de rossetta
7
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;
}


Alte întrebări interesante