Dintr-un fisier se citesc n numere intr-un tablou unidimensional. Afisati elementul minim impar (in caz ca asa element nu exista - afisati primul element din tablou).
In c++
Răspunsuri la întrebare
Răspuns:
#include <iostream>
using std::cout, std::cin, std::endl;
static int* creareTablou(const size_t& dimensiuneTablou) {
int* pTablou = new int[dimensiuneTablou];
for (size_t i = 0; i < dimensiuneTablou; i++) {
cout << "pTablou[" << i << "] >> ";
cin >> pTablou[i];
}
return pTablou;
}
static int gasesteMinim(int* pTablou, const size_t& dimensiuneTablou) {
int nrMin{INT32_MAX};
bool conditie = false;
for (size_t i = 0; i < dimensiuneTablou; i++)
if (pTablou[i] % 2 != 0 && pTablou[i] < nrMin) {
nrMin = pTablou[i];
if (conditie != true) conditie = true;
}
return (conditie == true) ? nrMin : pTablou[0];
}
int main() {
size_t dimensiuneTablou;
int nrGasit;
cout << "Introdu dimensiunea tabloului (de ex 5) >> ";
cin >> dimensiuneTablou;
int* pTablou = creareTablou(dimensiuneTablou);
nrGasit = gasesteMinim(pTablou, dimensiuneTablou);
cout << "nrGasit >> " << nrGasit << endl;
delete[] pTablou;
return 0;
}
Explicație:
Citești dimensiunea tabloului după care apelezi funcția creareTablou(...) care îți returnează un tablou unidimensional de dimensiunea citită. Tot în funcție citești și numere de la tastatură pe care le salvezi în interiorul tabloului.
După ai funcția gasesteMinim(...) care îți caută minimul impar din interiorul tabloului. Dacă nu există niciun număr impar în interiorul tabloului atunci îți va returna primul număr din tablou.
La final cu delete[] ... dealoci memoria alocată de către creareTablou(...).
Using namespace std;
Int main()
{
Int
Cin>>n;
For(i=1;i<=n;i++)
{
Cin>>a[i];
Min=9;
If(a[i] Min=a[i];
If(min%2==1)
Cout<Else
Cout<}
Return 0
}