C++ Bc. 18 cpp: Porovnání verzí
m Stránka C plus plus Bc. 18 cpp přemístěna na stránku C++ Bc. 18 cpp |
m +kategorie programovani, c++ |
||
| Řádek 70: | Řádek 70: | ||
teziste: 592.457 442.127 | teziste: 592.457 442.127 | ||
[ [[C | [ [[C++ Bc. 18 | Zpět]] ] | ||
[[Kategorie:Programování]] | |||
[[Kategorie:C++]] | |||
Verze z 2. 9. 2006, 10:48
#include <iostream>
#include <sstream>
std::istream& komentar(std::istream& inp);
int main()
{
using namespace std;
istringstream
data("/* vstup obsahuje souradnice x a y */ "
"/* x */ 123.54 /* y */ 345.53 "
" 738.34 542.43 433.22 543.98 "
" 832.64 343.25 534.17 541.23 "
" 892.83 336.34 /* konec dat */ ");
double x, y;
double sx = 0, sy = 0;
int pocet = 0;
// funkce komentar je definovana jako manipulator bez parametru
while (data >> komentar >> x >> komentar >> y)
{
cout << x << " " << y << endl;
sx += x;
sy += y;
pocet++;
}
if (pocet)
cout << "\nteziste: " << sx/pocet << " " << sy/pocet << endl;
else
cout << "na vstupu nejsou zadne souradnice\n";
}
std::istream& komentar(std::istream& inp)
{
char z;
while (inp >> z)
{
// komentar zacina dvoji znaku /*
if (z != '/' || inp.peek() != '*')
{
inp.putback(z);
return inp;
}
inp.get(); // nactu znak '*'
// komentar konci dvojici znaku */
while (inp >> z)
if (z == '*' && inp.peek() == '/')
{
inp.get(); // nactu znak '/'
break; // hledam dalsi komentar
}
}
return inp;
}
123.54 345.53 738.34 542.43 433.22 543.98 832.64 343.25 534.17 541.23 892.83 336.34 teziste: 592.457 442.127
[ Zpět ]