Pereiti prie turinio

Lengvas C++ uždavinys


Rekomenduojami pranešimai

Sveiki, būtų puiku sulaukti pagalbos su uždaviniu, kuriame reikia apskaičiuoti visų tekste pasitaikiusių skaitmenų sumas.

 

Pradiniai duomenys
Jūs gerai skaičiuojate? Tikrai? Patikrinsim!.. Siūlau keletą visiškai paprastų, didelio dėmėsio nereikalaujančių veiksmų... Pasiruošę? Pradedam... Tuščias autobusas išvažiuoja savo įprastu maršrutu. Pirmoje stotelėje įlipa 15 keleivių. Autobusas važiuoja toliau... Kita stotelė. 10 keleivių įlipa, 12 išlipa. Važiuojam toliau... Kita stotelė: 3 keleiviai įlipa, 5 išlipa. Dar viena stotelė: 11 keleivių įlipa, 1 išlipa. Autobusas važiuoja toliau... Kita stotelė. 5 keleiviai įlipa, niekas neišlipa. Autobusas važiuoja toliau... Kita stotelė: niekas neįlipa, 3 išlipa. Autobusas važiuoja toliau... Dar viena stotelė: niekas neįlipa, 5 keleiviai išlipa. Važiuojam toliau... Kita stotelė: 3 keleiviai įlipa, 2 išlipa. Autobuas vėl pajuda ir važiuoja iki paskutinės stotelės. Sustoja. Ar jūs pasiruošę klausimui? Na ką gi, jei jau tokie protingi... Kiek buvo stotelių?
Rezultatai
0 1
1 6
2 2
3 3
4 0
5 4
6 0
7 0
8 0
9 0

 

Aš parašiau tiek, mano galva viskas gerai, bet kažkas užsiciklina ir programa nepasileidžia:

 

#include <fcntl.h>
#include <io.h>
#include <cstdlib>
#include <iostream>
#include <iomanip>
#include <fstream>
#include <cmath>
#include <string>
using namespace std;
int Kiek(char a);
int main()
{
ofstream fr("rezultatai11_u1.txt");


for(char i='0';i<'10';i++){
fr<<'i'<<"  "<<Kiek('i')<<endl;
}


fr.close();
return 0;
}

int Kiek(char a){
char sk;
int k=0;
ifstream fd("duomenys11_u1.txt");
while(!fd.eof()){
fd.get(sk);
if(!fd.eof()&&(sk==a)) k++;}
fd.close();
return k;
}

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Visu pirma, i savo funkcija "Kiek" paduodi ta pati elementa "i".

 

Pati funkcija "Kiek", nors ir ne efektyviai, bet gerai paskaiciuoja, taciau reik sutvarkyt pati for cikla. Prisimink kad char yra tik 1 simbolis, o tu ji lygini su 2 simboliais (su '10').

 

 

 

for(char i='0';i<'10';i++){
fr<<'i'<<"  "<<Kiek('i')<<endl;
}

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Visu pirma, i savo funkcija "Kiek" paduodi ta pati elementa "i".

 

Pati funkcija "Kiek", nors ir ne efektyviai, bet gerai paskaiciuoja, taciau reik sutvarkyt pati for cikla. Prisimink kad char yra tik 1 simbolis, o tu ji lygini su 2 simboliais (su '10').

Labai ačiū! Gaunu ats. pakeitęs for ciklą į :

for(char i='0';i<='9';i++){
fr<<i<<"  "<<Kiek(i)<<endl;
}

 

O galbūt dar galėtumei pakomentuoti, kaip efektyviau parašyti funkciją "Kiek"?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...