Informatică, întrebare adresată de dovlecica15, 8 ani în urmă

Considerăm şirul a cu n numere naturale nenule distincte două câte două şi un număr x. Scrieţi un
program care determină poziţia pe care se va găsi numărul x în şirul a, dacă acesta ar fi ordonat
descrescător.
Ex pentru n=9, x=13 și șirul de numere 26 2 5 30 10 45 62 7 79, se va afișa
valoarea 6
in c++


Sergetec: Exemplul este scris gresit, dar iti pot da rezolvarea, insa vezi ca pe exemplu nu o sa iti dea, pentru ca nu exista numarul 13 in sirul de acolo

Răspunsuri la întrebare

Răspuns de Sergetec
1

Salut!

Ai rezolvarea mai jos

#include <iostream>

#include <algorithm>

using namespace std;

int main()

{

 int n, a[100000], x, poz;

 cin >> n >> x;

 for (int i = 0; i < n; ++i)

 {

   cin >> a[i];

 }

 sort(a, a + n);

 for (int i = n - 1; i >= 0; --i)

 {

   if (a[i] == x)

   {

     poz = i + 1; //+1 deoarece incepem indexarea de la 0

   }

 }

 cout << poz;

 return 0;

}


dovlecica15: algorithm
Sergetec: Este pentru a putea efectua instructiunea sort() care ne sorteaza vecotrul CRESCATOR, dupa aceea il citim de la n la 0 pentru a il citit DESCRESCATOR
Sergetec: Ca sa iti explic mai amplu, pe un exemplu: avem sirul 2, 1, 3 dupa instructiunea sort vom avea 1, 2, 3 iar noi pentru a lucra cu el descrescator o sa il cititim invers, adica 3, 2, 1
dovlecica15: nu am făcut vectori încă, sunt a10a
Sergetec: Ah, esti pe neintensiv?
dovlecica15: intensiv
Sergetec: Hmm esti pe intensiv in clasa 10 si nu ai facut vectori? Ciudat
dovlecica15: nu știu exact programa,dar probabil vom face în curând
dovlecica15: #include
using namespace std;
int main()
{
long long int n, x, num, gasit=0, i, poz=0;
cin >> n >> x;
for (i=1; i<=n; ++i)
{
cin >> num;
if (x else
{
if (x==num) { gasit=1; ++poz;}
}
}
if (gasit) cout << poz;
else cout << -1;
return 0;
}
dovlecica15: este ok rezolvarea asta?\
Alte întrebări interesante