Új hozzászólás Aktív témák
-
icespeak
csendes tag
Hi mindenki. Szerintetek mi lehet az alábbi kóddal a probléma?
/*
10. A Föld felszínének egy vonala mentén egyenlő távolságonként megmértük a terep tengerszint
feletti magasságát, és a mért értékeket egy vektorban tároljuk. Hány darab hegycsúcs van a
mérési sorozatban?
*/
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
int Megszamol(const vector<int> t, int &c);
bool ReadFromFile(const string &fname, vector<int> &t);
void ReadFromKeyboard(vector<int> &t);
int Read12(const string &msg, const string &errormsg);
int main(int argc, char *argv[])
{
char ch;
do{
// Adatok beolvasása
vector<int> t;
bool file_ok = true;
// Adatbevitel módja
int v;
if(argc>1) v = 1;
else{
cout << "Az adatbeolvasás módja:"<< endl
<< " SZÖVEGES FÁJL(1)"<< endl
<< " BILLENTYŰZET (2)"<< endl;
v = Read12("Válasszon: ","Csak 1 vagy 2 közül választhat!");
}
// Beolvasás fájlból
string fname;
switch(v)
{
case 1 :
if(argc<=1){
cout << "Adja meg a szöveges fájl nevét: ";
cin >> fname;
}
else fname = argv[1];
file_ok = ReadFromFile(fname, t);
if(!file_ok && argc>1) {
char ch; cin >> ch;
exit(1);
}
break;
case 2 :
cout << "Adjon meg mérési értékeket! Kilépés: quit \n";
ReadFromKeyboard(t);
break;
}
// Kiíratás
if(file_ok)
{
if(Megszamol(c)) cout << "Hegycsúcsok száma:" << c << endl;
else cout << "Nincs hegycsúcs"<< endl;
cout << endl << "Futtassam újra? (I/N) "; cin >> ch;
}
}while(ch!='n' && ch!='N');
return 0;
}
//Feladat: 1-es vagy 2-es beolvasása
//Tevékenység: Billentyűzetről kizárólag két szám, az 1-es vagy a 2-es valamelyikét fogadja el
// más adatot nem
//Bemenő adat: string msg - a beolvasás előtt megjelenítendő üzenet
// string error - hibás adat beírásakor megjelenítendő üzenet
//Kimenő adat: int v - 1-es vagy 2-es szám (visszatérési értékként)
int Read12(const string &msg, const string &errormsg)
{
int n;
bool hiba = true;
do{
cout << msg;
string str;
cin >> str;
n = atoi(str.c_str());
hiba = (n==0 && str!="0") || n<1 || n>2;
if(hiba) cout << errormsg << endl;
}while(hiba);
return n;
}
//Feladat: Integereket tartalmazó tömb (vector) feltöltése billentyűzetről
//Tevékenység: Billentyűzetről olvas be egymás után integereket és helyezi el őket egy vektorban
// addig, amíg a "quit" szót nem írjuk.
//Bemenő adat: -
//Kimenő adat: vector<int> t
void ReadFromKeyboard(vector<int> &t)
{
int meres;
cin >> meres;
while(meres!="quit"){
t.push_back(meres);
cin >> meres;
if (meres < 0){
meres = 0;
}
}
}
//Feladat: Integereket tartalmazó vektor feltöltése szöveges állományból
//Tevékenység: Megnyitja a megadott szöveges állományt (sikertelen kísérlet esetén hibát jelez)
// majd a fájlból egymás után beolvassa az összes elválasztójelekkel határolt számot
// és elhelyezi azokat egy vektor-ban
//Bemenő adat: string fname - szöveges állomány neve
//Kimenő adat: vector <int> t
// bool ok - sikerült-e az állomány megnyitása (visszatérési értékként)
bool ReadFromFile(const string &fname, vector<int> &t)
{
ifstream x(fname.c_str());
if(x.fail()){
cout << "Hibás fájlnév!"<< endl;
return false;
}
int meres;
x >> meres;
while(!x.eof()){
t.push_back(meres);
x >> meres;
if (meres<0){
meres = 0;
}
}
return true;
}
int Megszamol(const vector<int> t, int &c){
int c=0;
for(int i=0; i<(int)t.size(); i++){
if(i<i+1 || i+1>i+2){
c=c+1;
}
}
return c;
}
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Ohh Lenovo ThinkPad P15 G2 Tervező Vágó Laptop -75% 15,6" i5-11500H 32/1TB RTX A2000 4GB /1 Millió/
- UHH! HP EliteBook 850 G8 Fémházas Multimédiás Laptop 15,6" -40% i7-1165G7 16/512 Iris Xe FHD EU-HUN
- IBM PS/1 2168-552 486SX-25
- ASUS ROG Strix RTX 2080 Ti OC 11GB
- Acer Swift 3 (SF314 54) i5 / 8GB RAM / SSD / FullHD / kiváló állapotban!
- Telefon felvásárlás!! Honor 200 Lite, Honor 200, Honor 200 Pro, Honor 200 Smart
- REFURBISHED és ÚJ - HP USB-C/A Universal Dock G2 docking station (5TW13AA) (DisplayLink)
- Telefon felvásárlás!! Honor 400 Lite, Honor 400, Honor 400 Pro
- Törött, Hibás iPhone felvásárlás!!
- Lenovo ThinkPad T570, T580, P51s, P52s eredeti Lenovo, külső akkumulátor eladó
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest