Miert nem mukodik ez a programkod c++-ban? Az elso fuggveny - eldontes - lefut, de utana kilep, nem ertem miert.
#include <iostream>
#include <stdlib.h>
#include <string>
#include <fstream>
using namespace std;
const int maxN = 100;
struct utazo{int fel; int le;};
void fajlolvas(string adatok, int &l, utazo allomas[]);
void beolvasas(int &n, utazo allomas[]);
void systempause();
float elso(int n, utazo allomas[]);
int masodik(int n, utazo allomas[]);
int harmadik(int n, utazo allomas[]);
int negyedik(int n, utazo allomas[]);
void kiiras(float eredmeny1, int eredmeny2, int eredmeny3, int eredmeny4);
void eldontes ();
int main(){
int N;
utazo ALLOMAS[maxN];
float eredmeny1;
int eredmeny2;
int eredmeny3;
int eredmeny4;
eldontes();
eredmeny1=elso(N,ALLOMAS);
eredmeny2=masodik(N,ALLOMAS);
eredmeny3=harmadik(N,ALLOMAS);
eredmeny4=negyedik(N,ALLOMAS);
kiiras(eredmeny1,eredmeny2,eredmeny3,eredmeny4);
systempause();
return 0;
}
void eldontes(){
char m;
string ADATOK;
int L;
int N;
utazo ALLOMAS[maxN];
cout << "Fajlbol szeretnel olvasni, vagy billentyuzetrol? (F/B)";
cin >> m;
if ((m=='F') or (m=='f')){
fajlolvas(ADATOK,L,ALLOMAS);}
else if ((m=='B') or (m=='b')){
beolvasas(N,ALLOMAS);}
else {
cout << "Rossz valasz!";
exit(-1);}}
void fajlolvas(string adatok,int &l,utazo allomas[]){
ifstream myfile("adatok.txt");
myfile >> l;
if ((l > maxN) or (l == 0)) {
cout << "Tul nagy a fajl, vagy ures!";
exit (-1);}
else {
if (myfile.is_open()){
int i = 0;
while (!myfile.eof()){
myfile >> allomas[i].fel;
myfile >> allomas[i].le;
++i;}
myfile.close();}
else { cout << "Nem sikerult megnyitni a fajlt!"; exit (-1);}}}
void beolvasas(int &n, utazo allomas[]){
do {
cout << "Hany allomas osszesen? (max 100 lehet)";
cin >> n;
cout << endl;
} while ((n>maxN) or (n<0) );
for (int i=0;i<n;++i){
cout << "allomas felszalloinak szama: ";
cin >> allomas[i].fel;
cout << "allomas leszalloinak szama: ";
cin >> allomas[i].le;
cout << endl;
}}
float elso(int n, utazo allomas[]){
float osszle;
osszle = 0;
for (int i=0;i<n;++i){
osszle = osszle + allomas[i].le; }
float atlagle;
atlagle = osszle/n;
return atlagle;
}
int masodik(int n, utazo allomas[]){
int ind;
bool van;
van == false;
int i = 0;
while (van==false){
van = (allomas[i].fel == 0 && allomas[i].le == 0);
++i;}
if (van==true){
ind = i;}
else{
cout << "Nincs ilyen allomas";}
return ind;
}
int harmadik(int n, utazo allomas[]){
int maxert;
int maxind;
if (n<1){
cout << "Ez nem lehet, nincs maximum!";
exit (-1);}
else {
maxert = allomas[0].fel;
maxind = 0;
for (int i=1;i<n;++i){
if (maxert < allomas[i].fel){
maxert = allomas[i].fel;
maxind = i;}}
return maxind+1;
}}
int negyedik(int n, utazo allomas[]){
int hkulonbseg;
hkulonbseg = 0;
int c;
c = 0;
for (int i=0;i<n;++i){
hkulonbseg = hkulonbseg + (allomas[i].fel-allomas[i].le);
if ((hkulonbseg * 100)-1000 > 0){
c = c+1 ;}}
return c;
}
void kiiras(float eredmeny1, int eredmeny2, int eredmeny3, int eredmeny4){
cout << "A leszallok atlagos szama: " << eredmeny1;
cout << endl; cout << "\n";
cout << "Melyik allomason nem volt fel es leszallo? " << eredmeny2;
cout << endl; cout << "\n";
cout << "Az allomas ahol a legtobben szalltak fel: " << eredmeny3;
cout << endl; cout << "\n";
cout << "Gazdasagosan mukodtetheto allomasok szama: " << eredmeny4;
cout << endl;
}
void systempause()
{
system("pause");
}
bool van;
van == false;
Ez szerintem nem így akartad.
Warningokat nem ír? Azok is elég informatívak szoktak lenni.
Így ömlesztve csöppet átláthatatlan, 0 komment. pästebinre töltsd fel legközelebb.
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!