C++ Bc. 11 cpp: Porovnání verzí
Bez shrnutí editace |
m doplněny konce řádků |
||
| (Není zobrazeno 5 mezilehlých verzí od 2 dalších uživatelů.) | |||
| Řádek 19: | Řádek 19: | ||
// vstupni data pro testovani, jinak std::cin | // vstupni data pro testovani, jinak std::cin | ||
istringstream input(" 1 2 3 -2 -1 4 1 6 1 3" | istringstream input(" 1 2 3 -2 -1 4 1 6 1 3 \n" | ||
"-4 2 -1 3 -7 1 -1 4 -2 -1" | "-4 2 -1 3 -7 1 -1 4 -2 -1 \n" | ||
"-2 3 1 -3 4 6 -7 -1 1 1"); | "-2 3 1 -3 4 6 -7 -1 1 1 \n"); | ||
Data data; | Data data; | ||
uspesnost(input, data); | uspesnost(input, data); | ||
| Řádek 63: | Řádek 63: | ||
} | } | ||
} | } | ||
[ [[C++ Bc. 11|Zpět]] ] | |||
[[Kategorie:Programování]] | |||
[[Kategorie:C++]] | |||
Aktuální verze z 14. 2. 2007, 21:09
#include <iostream>
#include <sstream>
#include <map>
#include <iomanip>
struct Test {
float uspesnost;
int celkem;
};
typedef std::map<int, Test> Data;
void uspesnost(std::istream& input, Data& data);
int main()
{
using namespace std;
// vstupni data pro testovani, jinak std::cin
istringstream input(" 1 2 3 -2 -1 4 1 6 1 3 \n"
"-4 2 -1 3 -7 1 -1 4 -2 -1 \n"
"-2 3 1 -3 4 6 -7 -1 1 1 \n");
Data data;
uspesnost(input, data);
// format fixed, vystup na 2 desetinna mista
cout.setf(ios_base::fixed, ios_base::floatfield);
cout.precision(2);
cout << "cislo celkem uspesnost \n";
for (Data::iterator i=data.begin(), e=data.end(); i!=e; ++i)
{
int cislo = i->first;
float uspesnost = i->second.uspesnost;
int celkem = i->second.celkem;
cout << setw(4) << cislo << " "
<< setw(5) << celkem << " "
<< setw(8) << uspesnost << "\n";
}
}
void uspesnost(std::istream& input, Data& data)
{
using namespace std;
int t, cislo;
while (input >> t)
{
cislo = abs(t);
if (t > 0) data[cislo].uspesnost++;
data[cislo].celkem++;
}
for (Data::iterator i=data.begin(), e=data.end(); i!=e; ++i)
{
Test& t = i->second;
t.uspesnost /= t.celkem;
}
}
[ Zpět ]