Miért nem működik a növekvő sorrendbe rendezés <C++>?
Akartam gyakorolni a C++-t, ezért feladatokat keresgéltem.
Találtam a neten egy ilyen feladatot:
Egy 100 pontos dolgozat írása során 10 tanuló eredményeit vizsgáljuk.
1. Kérjen be a program 10 db 0-100 közötti számot
2. Válassza ki a legjobb és a legrosszabb eredményt
3. Számolja ki az átlagot
4. Hány 50 pont feletti dolgozat született
5. Keresse meg, hányadik tanuló érte el a legjobb eredményt
6. Rendezze növekvő sorrendbe a pontszámokat
A növekvő sorrenden kívül minden megvan...de ez az egy kifogott rajtam. Nem akartam segítséget kérni, de magamtól eddig még nem sikerült 100%-san működő algoritmust írni.
Amit az előbb próbáltam (egy külön programmal kísérleteztem rajta, így annak a kódját adom meg):
#include <iostream>
using namespace std;
int main()
{
int szamok[10] = { 1 , 5 , 12 , 3 , 5 , 45 , 100 , 70 , 0 , 42 };
int szamok2[10] = {0,0,0,0,0,0,0,0,0,0};
for (int i=0;i<10;i++);
{
for (int i=0;i<10;i++)
{
if (szamok[i]<szamok[i+1])
szamok2[i] = szamok[i];
}
}
for (int i=0;i<10;i++)
cout << "\n" << szamok2[i] << "\n";
char Q;cin>>Q;return 0; // Hogy ne álljon le azonnal.
}
for (int i=0;i<9;i++);
{
for (int j=0;j<8;i++)
{
if (szamok[j]>szamok[j+1])
temp=szamok[j];
szamok[j]=szamok[j+1];
szamok[j+1]=temp;
}
}
ez a buborekos rendezes novekvo sorrendbe 10 elemu tombnel
Elkezdtem régebben összeszedni az ide írt egyszerű válaszokat, közel sem teljes még de neked ez is megteszi:
A temp-es tanácsod ötletet adott, így átírtam közben én is:
const int how_many = 10;
int szamok[how_many] = { 1 , 5 , 12 , 3 , 5 , 45 , 100 , 70 , 0 , 42 };
int temp;
for (int i=0;i<how_many;i++)
for (int i=0;i<how_many-1;i++)
{
if (szamok[i]>szamok[i+1])
{
temp = szamok[i];
szamok[i]=szamok[i+1];
szamok[i+1]=temp;
}
}
Így már működött.
Köszönöm a segítséget :)
Úgy látom valami hasonlót csináltam, de szerintem ennek csak örülhetnék :D
Mi a baj az std::sort-tal?
Eleve, ezek mind gyönyörűen oldhatók sima standard könyvtári függvényekkel, objektumokkal (igen, még a beolvasás is). Érdemes lenne arra rászokni.
1. istream_iterator, back_insterter
2. min_element, max_element
3. accumulate
4. count_if
5. max_element ismét
6. sort
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!