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

Cerința
Primăria dorește să realizeze un proiect de sistematizare a orașului și pentru aceasta îl angajează pe arhitectul Gigel. Orașul constă în n clădiri; pentru fiecare se cunoaște înălțimea, iar Gigel trebuie să ordoneze descrescător aceste înălțimi.

Date de intrare
Programul citește de la tastatură prima linie numărul n, apoi n numere naturale separate prin spații, reprezentând înălțimile celor n clădiri.

Date de ieșire
Programul va afișa pe ecran n numere naturale, separate prin câte un spațiu, reprezentând înălțimile clădirilor, după ordonare.

Restricții și precizări
1 ≤ n ≤ 1000
înălțimile clădirilor vor fi mai mici decât 1.000.000.000
Exemplu
Intrare

5
1 2 7 3 6
Ieșire

7 6 3 2 1

Răspunsuri la întrebare

Răspuns de ionuttipa07
3
#include < iostream >
#include < algorithm >
bool desc (int x, int y)
{
return x > y;
}
using namespace std;
int main()
{
int v[100], n;
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> v[i];
sort(v + 1, v + n + 1, desc);
for (int i = 1; i <= n; i++)
cout << v[i] << " ";

return 0;
}
Sau poți sa faci sortarea și cu un Bubble sort.

ionuttipa07: Fără arcolada aia intre primul for din main și cin.
rossetta: Ai declarat un vector de 100 de elemente. In enunt vedem ca sunt maxim 1000 de elemente.
ionuttipa07: :)) v[1000], ma scuzati!
Răspuns de rossetta
7
#include <iostream>
using namespace std;
int v[1000];
int main() {
  int n;
  cin >> n;
  for (int i = 0; i < n ; i++)
    cin >> v[i];
  int nn = n - 1, aux, poz;
  while(nn) {
    poz = nn;
    for (int i = 0; i < nn ; i++)
      if(v[i] < v[poz])
        poz = i;
    aux  = v[nn];
    v[nn] = v[poz];
    v[poz] = aux;
    nn--;
  }
   for (int i = 0; i < n ; i++)
     cout << v[i] << " ";
    return 0;
}
Alte întrebări interesante