[C++] Wczytywanie liczb rzeczywistych
-
- Użytkownik
- Posty: 23
- Rejestracja: 17 maja 2012, o 12:00
- Płeć: Kobieta
- Lokalizacja: Koszalin
- Podziękował: 4 razy
[C++] Wczytywanie liczb rzeczywistych
Napisz program, który wczyta z klawiatury 3 liczby rzeczywiste, a następnie wyświetli
te dwie z nich, które są większe.
te dwie z nich, które są większe.
Ostatnio zmieniony 14 mar 2013, o 21:23 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
-
- Użytkownik
- Posty: 1406
- Rejestracja: 6 maja 2012, o 22:46
- Płeć: Mężczyzna
- Lokalizacja: Polska
- Podziękował: 107 razy
- Pomógł: 145 razy
[C++] Wczytywanie liczb rzeczywistych
Kod: Zaznacz cały
double tab[3];
for(int i = 0; i < 3 ; i++)
cin >> tab[i];
double najmniejsza = a;
if( tab[1] < najmniejsza) najmniejsza = tab[1];
if( tab[2] < najmniejsza) najmniejsza = tab[2];
for(int i = 0; i < 3 ; i++)
if(najmniejsza != tab[i]) cout<< tab[i];
-
- Użytkownik
- Posty: 34
- Rejestracja: 30 wrz 2012, o 13:52
- Płeć: Mężczyzna
- Lokalizacja: Legnica
- Podziękował: 1 raz
- Pomógł: 4 razy
[C++] Wczytywanie liczb rzeczywistych
Może i powyższe rozwiązanie jest poprawne (nie sprawdzałem), ale jest brzydkie
Kod: Zaznacz cały
#include <iostream>
#include <algorithm>
using namespace std;
double tab[4];
int main(){
for(int i = 0; i < 3; i++){
cin >> tab[i];
}
sort(tab, tab + 3);
cout << "Dwie największe liczby to: " << tab[1] << " i " << tab[2] << endl;
return 0;
}
- MichalPWr
- Użytkownik
- Posty: 1625
- Rejestracja: 29 wrz 2010, o 15:55
- Płeć: Mężczyzna
- Lokalizacja: Leszno
- Podziękował: 7 razy
- Pomógł: 387 razy
[C++] Wczytywanie liczb rzeczywistych
Wszystkie rozwiązania są fajne, ale co się stanie jak wpiszę literę?
Ser Cubus masz rację. Lepiej nie używać takich myków. One są raczej zaadresowane dla zaawansowanych, tych co wiedzą co robią i jakie są tego konsekwencje. W tym przykładzie najlepiej zastosować bubble sort z uwagi na jego prostotę i walory edukacyjne
PabloRal, Używanie zmiennych globalnych w takim małym programie też nie należy do najpiękniejszych
Ser Cubus masz rację. Lepiej nie używać takich myków. One są raczej zaadresowane dla zaawansowanych, tych co wiedzą co robią i jakie są tego konsekwencje. W tym przykładzie najlepiej zastosować bubble sort z uwagi na jego prostotę i walory edukacyjne
PabloRal, Używanie zmiennych globalnych w takim małym programie też nie należy do najpiękniejszych
-
- Użytkownik
- Posty: 106
- Rejestracja: 17 gru 2012, o 23:56
- Płeć: Mężczyzna
- Lokalizacja: Warszawa
- Podziękował: 7 razy
- Pomógł: 31 razy
[C++] Wczytywanie liczb rzeczywistych
Moa propozycja:
Poza tym MichalPWr ma racje, trzeba jeszcze uwzględnić warunki co by było w przypadku nie podania liczby. Najlepiej określić to już w specyfikacji wejścia.
Zresztą powyższe trzy kody nie są idealne. A co w przypadku liczb składających się na przykład z 10000 cyfr? Najlepszy algorytm to zaczytanie zmiennych jako tablice charów i odróżniać wielkość tego ciągu (ilość znaków) przed przecinkiem, a następnie posortować. Nie trudne, ale trochę trzeba pogówkować z warunkami - ja już tego nie zrobię bo jest za późno
Kod: Zaznacz cały
#include<iostream>
#include<queue>
using namespace std;
int main()
{
priority_queue <double> a;
double b;
for(int i=0;i!=3;i++)
{
cin>>b;
a.push(b);
}
cout<<a.top()<<" ";
a.pop();
cout<<a.top();
cin.ignore();
getchar();
return 0;
}
Zresztą powyższe trzy kody nie są idealne. A co w przypadku liczb składających się na przykład z 10000 cyfr? Najlepszy algorytm to zaczytanie zmiennych jako tablice charów i odróżniać wielkość tego ciągu (ilość znaków) przed przecinkiem, a następnie posortować. Nie trudne, ale trochę trzeba pogówkować z warunkami - ja już tego nie zrobię bo jest za późno