Programiranje u C++-u - pitanja i odgovori izdvojena tema

poruka: 7.285
|
čitano: 1.712.411
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

a. Store the following data in a file named numbers.dat:
5 96 87 78 93 21 4 92 82 85 87 6 72 69 85 75 81 73
b. Write a C++ program to calculate and display the average of each group of numbers in the
file created in Exercise 11a. The data is arranged in the file so that each group of numbers
is preceded by the number of data items in the group. Therefore, the first number in the
file, 5, indicates that the next five numbers should be grouped together. The number 4
indicates that the following four numbers are a group, and the 6 indicates that the last six
numbers are a group. (Hint: Use a nested loop. The outer loop should terminate when the
end of file has been encountered.)

 

Program mi zadnji rezultat ispisuje dva puta, zašto?

 

 

#include<iostream>
#include<fstream>

 

using namespace std;

int main()
{

   ofstream outFile;
   ifstream inFile;
   int sum = 0, myArr[10];
   double avg;

   int arr[] = { 5, 96, 87, 78, 93, 21, 4, 92, 82, 85, 87, 6, 72, 69, 85, 75, 81, 73 };
   int size;

 

 

   outFile.open("numbers.dat");
   inFile.open("numbers.dat");

 

   size = sizeof(arr) / sizeof(arr[0]);

 

 

   for (int i = 0; i < size; i++)
  {
      outFile << arr[i] << " ";
  }

 

  outFile.close();

 

  cout << "Data are stored in file!!!\n";


  if (inFile.fail())
  {
    cout << "File couldn't be opened!!!" << endl;
    exit(1);
  }

  else
  {

  

   while (!inFile.eof())
   {

 

    inFile >> size;
    for (int i = 0; i < size; i++)
    {

 

      inFile >> myArr[i];
      cout << myArr[i] << " ";
      sum = sum + myArr[i];

    }

 

 

     cout << "\nSum: " << sum << endl;
     avg = sum / size;
     cout << "Avg values: "<< avg << endl;
     sum = 0;
     cout << endl;
   }

 

   inFile.close();

}


  return 0;
}

 
0 0 hvala 0
11 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori

Dio koda koji ispisuje rezultat stavi pod if uvjet ako nije eof, jer eof ispituješ na početku petlje. Ili presloži drugačije vanjsku pelju....

 

17 godina
offline
Programiranje u C++-u - pitanja i odgovori

#include<iostream>
#include<fstream>



using namespace std;

int main()
{

   ofstream outFile;
   ifstream inFile;
   int sum = 0, myArr[10];
   double avg;
   int arr[] = { 5, 96, 87, 78, 93, 21, 4, 92, 82, 85, 87, 6, 72, 69, 85, 75, 81, 73};
   int size;
   outFile.open("numbers.dat");
   inFile.open("numbers.dat");
   size = sizeof(arr) / sizeof(arr[0]);
   for (int i = 0; i < size; i++)
   {
      outFile << arr[i] << " ";
   }
   outFile.close();
   cout << "Data are stored in file!!!\n";
   if (inFile.fail())
   {
      cout << "File couldn't be opened!!!" << endl;
   }
   else
   {
      int a;
      inFile >> size;
      while (!inFile.eof())
      {
         for (int i = 0; i < size; i++)
         {
            inFile >> a;
            cout << a << " ";
            sum = sum + a;
         }
         cout << "\nSum: " << sum << endl;
         avg = sum / size;
         cout << "Avg values: " << avg << endl;
         sum = 0;
         cout << endl;
         inFile >> size;
      }
      inFile.close();
   }
   return 0;
}

Poruka je uređivana zadnji put sub 12.3.2016 18:40 (Floki).
 
0 0 hvala 1
17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Jel kužiš što se dogodilo, to je bitnije nego promjeniti jednu liniju koda

 

#include<iostream>
#include<fstream>



using namespace std;

int main()
{

   ofstream outFile;
   ifstream inFile;
   int sum = 0, myArr[10];
   double avg;

   int arr[] = { 5, 96, 87, 78, 93, 21, 4, 92, 82, 85, 87, 6, 72, 69, 85, 75, 81, 73};
   int size;





   outFile.open("numbers.dat");
   inFile.open("numbers.dat");



   size = sizeof(arr) / sizeof(arr[0]);





   for (int i = 0; i < size; i++)
   {
      outFile << arr[i] << " ";
   }



   outFile.close();



   cout << "Data are stored in file!!!\n";
   


   if (inFile.fail())
   {
      cout << "File couldn't be opened!!!" << endl;
      exit(1);
   }

   else
   {


      
      int a;
      while (!inFile.eof())
      {

         
         inFile >> size;
         for (int i = 0; i < size; i++)
         {


            
            inFile >> a;
            cout << a << " ";
            sum = sum + a;

         }





         cout << "\nSum: " << sum << endl;
         avg = sum / size;
         cout << "Avg values: " << avg << endl;
         sum = 0;
         cout << endl;
      }



      inFile.close();

   }


   return 0;
}

 

Na ovom pogrešnom ćeš lakše skužiti zašto ispisuje 6 puta 73.

Kad si ispisao zadnji broj tj. 73, odnosno došao do kraja niza, zatim si izvršio  provjeru u while petlji, provjera je prošla, jer pokazivač inFile je na broju 73, nakon toga pokazivač inFile je otišao na znak eof, a pošto novih brojeva u nizu nemaš, size je ostao 6, a a je ostao 73. Kad si odvrtio tu for petlju pokazivač inFile je od prije na eof, pa se petlja while zaustavlja.

I gore ćemo riješiti sa pomoćnom varijablom, nećemo ponovno pisati po nizu.

Uz to ne treba ti ni taj exit kod provjere otvaranja datoteke, u else granu ionako uopće ne ideš ako ne uspiješ otvoriti datoteku.

Poruka je uređivana zadnji put sub 12.3.2016 18:43 (Floki).
 
0 0 hvala 1
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Hvala na objašnjenju, taj exit sam stavljao jer sam imao zadatak pod a i b, pod b je bilo da napravim ovo drugo gdje sam zapeo, provrtio sam kod i jos uz ovo tvoje sam shvatio kako se sta događa.

 
0 0 hvala 0
9 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Zdravo,

 

ima li neko možda dobar tutorijal gdje je sve detaljno objašnjeno kako se koriste klase u c++? Pronađem ja nekih par videa, al' moje neko mišljenje

je da samo površno objasne. Nema veze da li je na našem ili engl. jeziku, samo da je detaljno pojašnjeno. 

Hvala.

 
0 0 hvala 0
17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
M_CWAL kaže...

Zdravo,

 

ima li neko možda dobar tutorijal gdje je sve detaljno objašnjeno kako se koriste klase u c++? Pronađem ja nekih par videa, al' moje neko mišljenje

je da samo površno objasne. Nema veze da li je na našem ili engl. jeziku, samo da je detaljno pojašnjeno. 

Hvala.

Klase specificno u C++-u (kako ih definirati i ostalo) ili te muce klase opcenito (cemu to i zasto)?

 

Za prvo, meni je najbolji tutorial bio ovaj: http://www.learncpp.com/

Perhaps today IS a good day to die. PREPARE FOR RAMMING SPEED!
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
M_CWAL kaže...

Zdravo,

 

ima li neko možda dobar tutorijal gdje je sve detaljno objašnjeno kako se koriste klase u c++? Pronađem ja nekih par videa, al' moje neko mišljenje

je da samo površno objasne. Nema veze da li je na našem ili engl. jeziku, samo da je detaljno pojašnjeno. 

Hvala.

Objektno orijentirano programiranje - Predavanja VSITE

 

Ima i za C:

https://www.youtube.com/playlist?list=PLF875D917B4F481D0

15 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Mene zanima kako da ja napravim svoj header koji ću moć koristit u svakom programu?

 

Mislim, znam napravit header ali kojega mogu koristit samo u jednom programu. Dakle jednostavno napravim header daototeku i stavim u folder od programa, ali u koji folder treba stavit da bi moga includat jednako ko i sve ostale standardne header? Može li se to?

 

Logičan zaključak bi bia da ih se stavi skupa u folder sa standardnim headerima, i mislim da sam ih naša.

Putanja je: D:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.8.1\include\c++\tr1

I stavia sam tu svoju include datoteku, pokuša je includat u program (sa < i >, ne sa navodnicima) i nemože. Očito nije tako jednostavno kako sam mislia.

 

I još jedna stvar, kad ih includam (a nalaze se u folderu programa) moram stavit "funkcije.h", nemože bez .h. Zašto? Pa ovo je C++ nije C. Ne može ni "cfunkcije".

 

Poruka je uređivana zadnji put pon 14.3.2016 21:54 (dr. zlo).
Moj PC  
0 0 hvala 0
9 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
1domagoj1 kaže...

Klase specificno u C++-u (kako ih definirati i ostalo) ili te muce klase opcenito (cemu to i zasto)?

 

Za prvo, meni je najbolji tutorial bio ovaj: http://www.learncpp.com/

 Definiranje, da. Primjeri zadataka i ostalo.. Da skužim fazon.

13 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Zainteresovao sam se za ucenje ovog jezika i posto sam potpuni pocetnik u svetu programiranja, nisam do sad imao nikakvih dodira sa istim, zanima me da li je dobra ova knjiga za pocetak, zove se: C++ Without Fear(second edition), autor je: Brian Overland??

Moj PC  
0 0 hvala 0
17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
animal4444 kaže...

Zainteresovao sam se za ucenje ovog jezika i posto sam potpuni pocetnik u svetu programiranja, nisam do sad imao nikakvih dodira sa istim, zanima me da li je dobra ova knjiga za pocetak, zove se: C++ Without Fear(second edition), autor je: Brian Overland??

Ne znam konkretno za tu knjigu, ali ovdje imas lijep popis onoga sto su ljudi koristili: http://www.bug.hr/forum/topic/programiranje/literatura-programiranje/117438.aspx

Perhaps today IS a good day to die. PREPARE FOR RAMMING SPEED!
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Okej, hvala na odgovoru pogledacu pa cu nesto od toga da uzmem

14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
animal4444 kaže...

Okej, hvala na odgovoru pogledacu pa cu nesto od toga da uzmem

Ovo ti je jako dobar izvor za knjige: https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list

Uz to, C++ Super FAQ googlaj, to odrzavaju autori jezika i jako je korisno. 

 

No to ti je sve ako zelis da ti programiranje u C++u bude top3 stvari u zivotu.

Ako nisi spreman uci u religiju, vec te samo zanima programiranje (a netko ti je rekao da je C++ zanimljiv), onda pogledaj learncpp dot com. Stranica na kojoj je ukratko objasnjeno sve sto ti treba kako bi koristio C++. 

 

Dodatno, ako samo zelis izvrsnu knjigu za C++, a nisi jos odlucio koliko se time zelis baviti, onda pogledaj knjigu na hrvatskom, Demistificirani C++.

Znam nekoliko ljudi koji su je obradili u srednjoj skoli, znam neke koji su ju kupili u srednjoj skoli, a nisu je nikad procitali. Sam ju posjedujem i mogu ti reci da ako si pocetnik. dugo ces ju koristiti kao jedini izvor.

Derive and Conquer.
13 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Iskreno ovim zelim da se bavim u zivotu, koliko god da to sad zvuci mozda glupo, mozda sam malo kasno shvatio(25 godina) to ali generalno tako je i sve me vise vuce. Cini mi se da kako mi godine prolaze sve vise i vise razmisljam o programiranju jednostavno tu se vidim u budcnosti. 

Sto vise saveta meni jos bolje, s obzirom da sam okruzen ljudima kojima kada spomenem programiranje gledaju me kao vanzemaljca najblaze receno...

Moj PC  
3 0 hvala 0
11 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Hahahahahaha, nista samo polako, ja sam svoje naucio za nekih 4-5 meseci (u 4. razredu, (sad sam osmi)) i kasnije cete  poceti zanimati jos nesta "ozbiljnije" tako da znanja nikad dosta. ;)

LP-Linkin Park
9 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Pozz,imam problem,dobio sam listu od nekih 50 rendom ispisanih 9eroznamenkastih brojeva i trebam koristiti metodu preklapanja,tj hash funkciju.Ugl od dobivenih zbrojeva formira se novi broj. Ukoliko je novi broj šesteroznamenkast, zbrajaju se po tri broja zajedno. Ukoliko je peteroznamenkast, zbrajaju se tri i dvije znamenke, dok ako je četveroznamenkast, neka se zbroje dvije i dvije znamenke.

Kada je broj troznamenkast, kao preljev se odbacuje prva znamenka, a zadnje dvije znače adresu. Cilj je dobiti jednoznamenkasti ili dvoznamenkasti zbroj, ili pak troznamenkasti iz kojeg se uklanja prva znamenka, tako da je nekad potrebno ponoviti postupak. Na kraju, implementirajte i pretraživanje elementa kojeg unosi korisnik, a ispisuje se lokacija elementa ili poruka da nije pronađen.

krenuo sam ovako i znao bih napravit ali bi mi trebalo milion linija koda i ne znam dali je to uopce ispravan put,pa ako netko mi moze sugerirat sta da stavim,ispravim ili nekako pomoci bio bih zahvalan :)

 

ifstream popis("rendombrojevi".txt)
for(int i=0;i<49;i++){
popis>>polje[i];
if(polje[i]!=0);
cout<<polje[i]<<" ------ ";

int j,d,s,t,dt,st,m,dm,sm,pr,dr,tr,nov1,nov2,nov3,nov4,nov5,nov6,nov7,nov8;
j=polje[j]%10;
d=(polje[j]/10)%10;
s=(polje[j]/100)%10;
t=(polje[j]/1000)%10;
dt=(polje[j]/10000)%10;
st=(polje[j]/100000)%10;
m=(polje[j]/1000000)%10;
dm=(polje[j]/10000000)%10;
sm=(polje[j]/100000000)%10;
pr=j+d+s;
dr=t+dt+st;
tr=m+dm+sm;
if(tr>=10 && dr>=10 && pr<10){
nov1=tr*1000+dr*10+pr;
cout<<nov1<<endl;}
else if(tr>=10 && dr>=10 && pr>=10){
nov2=tr*10000+dr*100+pr;
cout<<nov2<<endl;}
else if(tr<10 && dr<10 && pr>=10){
nov3=tr*1000+dr*10+pr;
cout<<nov3<<endl;}
else if (tr>=10 && dr<10 && pr<10){
nov4=tr*1000+dr+pr;
cout<<nov4<<endl;}
else if(tr>=10 && dr>=10 && pr>=10){
nov5=tr*100000+dr*1000+pr;
cout<<nov5<<endl;}
else if(tr<10 && dr>=10 && pr>=10){
nov6=tr*10000+dr*100+pr;
cout<<nov6<<endl;}
else if(tr<10 && dr>=10 && pr<10){
nov7=tr*1000+dr*10+pr;
cout<<nov7<<endl;}
else if(tr>=10 && dr<10 && pr >=10){
nov8=tr*1000+dr*10+pr;
cout<<nov8<<endl;}

 
0 0 hvala 0
10 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Pozdrav, imam pitanje u vezi Code::Blocksa. S istim kodom, a drugačijim build targetom (debug, release) mi baca i drugačije rezultate.

Zna li netko o čemu je riječ?

Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Pozdrav, vidi li neko šta nije u redu sa ovim kodom?

 

void PigLatin (string recenica)
{
      string::iterator recenica_it = recenica.begin();
      string::iterator pocetak_rijeci;
      string buffer;
      string samoglasnici("aeiou");

 

     for ( ; recenica_it != recenica.end(); recenica_it++ ){

 

       while ( *recenica_it == ' ' )
          recenica_it++;

 

       if ( samoglasnici.find(*recenica_it) != string::npos ){
          ;
       }
       else{
          pocetak_rijeci = recenica_it;

 

          while ( ( samoglasnici.find(*recenica_it) == string::npos ) && ( *recenica_it != ' ' ) ) {

              buffer.push_back(*recenica_it);
              recenica_it++;
            }
          while ( *recenica_it != ' ' )
              recenica_it++;

 

          recenica.insert(recenica_it - pocetak_rijeci, buffer);
          recenica_it += buffer.size();
          recenica.erase( pocetak_rijeci - recenica.begin(), buffer.size() ); //"WhatWh"
      }
   }
cout << recenica << endl;
}

 

Funkcija prima string i treba napravit sljedeće: 

  • ako riječ pocinje samoglasnikom dopisuje se hay na kraj riječi,
  • inače, svi suglasnici s početka riječi prebacuju se na kraj te se na kraju riječi dopisuje ay.

Primjer: ”What time is it?” prevodi se kao ”atwhay imetay ishay ithay?”

 

Vidite da u if dijelu nema ništa, to je zato jer ga još nisam počea radit. Zasad radim ovaj else dio koji se izvršava u slučaju da je prvo slovo riječi suglasnik. 

Dakle, tu prvo trebam sve suglasnike prebacit na kraj riječi; to pokušavam tako da ih prvo spremim u buffer, kad dođem to samoglasnika pomaknem se na kraj riječi, i onda kreču problemi. 

Dakle linija recenica.insert(recenica_it - pocetak_rijeci, buffer), dakle funkciji pošaljem index na koji želim kopirat i buffer. Više sam put provjeria, index sam dobro izračuna, ali problem je šta u toj liniji koda ova dva iteratora odu na jednu jako čudnu vrijednost, izgleda mi da pokazuju na nešto šta uopće nema veze sa primljenim stringom. Ali stvarno nerazumim kako ako ih u toj liniji uopće nisam mijenja???

I onda dalje nemogu normalno radit jer se iteratorima poremeti vrijednost.

 

 

Poruka je uređivana zadnji put sub 2.4.2016 11:17 (dr. zlo).
Moj PC  
0 0 hvala 0
13 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Lijep pozdrav , trebam pomoc oko zadatka za faks.
Zadatak glasi : "Napišite program koji će pročitati sve cjelobrojne deveteroznamenkaste ključeve
iz datoteke popis.txt i smjestiti ih
u polje veličine 100. Hash funkcija koristi metodu preklapanja. Metoda
preklapanja za dobivanje adresa u polju zbraja znamenke broja na način da zbroji
u grupama prve tri, srednje tri i zadnje tri znamenke. Od dobivenih zbrojeva
formira se novi broj. Ukoliko je novi broj šesteroznamenkast, zbrajaju se po
tri broja zajedno. Ukoliko je peteroznamenkast, zbrajaju se tri i dvije
znamenke, dok ako je četveroznamenkast, neka se zbroje dvije i dvije znamenke.
Kada je broj troznamenkast, kao preljev se odbacuje prva znamenka, a zadnje
dvije znače adresu. Cilj je dobiti jednoznamenkasti ili dvoznamenkasti zbroj, ili pak troznamenkasti iz
kojeg se uklanja prva znamenka, tako da je nekad potrebno ponoviti postupak. Za
rezoluciju kolizije koristite linearnu metodu. Ispišite sadržaj cijelog polja. Na
kraju, implementirajte i pretraživanje elementa kojeg unosi korisnik, a
ispisuje se lokacija elementa ili poruka da nije pronađen."

 

 

Trebam pomoc oko boldanog, nije mi jasno kako da odvojim znamenke od cijelog broja kako bi ih kasnije zbrojio da se dobije adresa . Trazio sam po netu ali nisam nista previse o Hashiranju nasao . Ne trazim vas kod nego ovako kroz rijeci netko tko bi mogao malo poblize objasniti . Unaprijed hvala :D

Poruka je uređivana zadnji put sub 2.4.2016 15:15 (Fuhrer).
 
0 0 hvala 0
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Pozdrav, koja je razlika između ako imam funkciju koja uzima za parametar pokazivač, npr:

 

 

void pok(int *p, int size)

{

  for(int i = 0; i < size; i++)

  {

    cout << p[i] << " : " << *(p + i) << endl;

  }

}

   

 

Koja je razlika između p[i] i *(p + i) uvijek sam u zadatcima rjesavao da idem putem dereferencije pokazivača ispisivati vrijednosti, dok sam po internetu naletio da može i ovo p[i] samo mi nije jasno zar nebi trebalo ići *p[i] kako kompajler zna adresu od p[i] elementa????

Poruka je uređivana zadnji put uto 5.4.2016 21:05 (Broken).
 
0 0 hvala 0
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Aritmetika pokazivača.

 

p[i] = *(p + i)

 

tj.

 

p + i => &p[0] + (i * sizeof(int))

 

 

17 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
Broken kaže...

Pozdrav, koja je razlika između ako imam funkciju koja uzima za parametar pokazivač, npr:

 

 

void pok(int *p, int size)

{

  for(int i = 0; i < size; i++)

  {

    cout << p[i] << " : " << *(p + i) << endl;

  }

}

   

 

Koja je razlika između p[i] i *(p + i) uvijek sam u zadatcima rjesavao da idem putem dereferencije pokazivača ispisivati vrijednosti, dok sam po internetu naletio da može i ovo p[i] samo mi nije jasno zar nebi trebalo ići *p[i] kako kompajler zna adresu od p[i] elementa????

 Što te priječi da u main funkciji ovo napraviš

 

 

int* niz = new int[2];
   niz[0] = 1;
   niz[1] = 2;
   int niz1[2] = { 1,2 };
   cout << niz[1] << " " << niz1[1];
   delete[] niz;

 

Index operator ne brkati sa pokazivačem, index operator ide iza imena niza, a ime niza je pokazivač na prvi elemet niza deklarirao niz statički ili dinamički. Ne moraš ništa dereferencirati, to radiš kad staviš index operator.

 

 

9 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Zdravo, treba mi pomoc oko pisanja programa koji ce iz vec postojace datoteke "program.txt" da cita i stampa samo prvu i trecu recenicu.
Hvala unapred ako neko moze da mi pomogne.

 
0 0 hvala 0
14 godina
odjavljen
offline
Programiranje u C++-u - pitanja i odgovori

Na koji način mogu definirati varijablu za string i uzeti dužinu stringa. Ovako bi ja to odradio s PAWNom

 

new string[5]; // MOŽE PRIMITI DO 4 SLOVA

printf("duljina stringa je %d", strlen(string));

 

Hvala :)

 

@Odradio

 

 

Poruka je uređivana zadnji put ned 10.4.2016 21:34 (Dex.pwn).
 
0 0 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Dex.pwn kaže...

Na koji način mogu definirati varijablu za string i uzeti dužinu stringa. Ovako bi ja to odradio s PAWNom

 

new string[5]; // MOŽE PRIMITI DO 4 SLOVA

printf("duljina stringa je %d", strlen(string));

 

Hvala :)

 

@Odradio

 

 

 

Dobra praksa je izbjegavati goto, probaj riješiti sa petljom.

Ameri me poslali na mjesec, lagano sam failo putanju
14 godina
odjavljen
offline
Programiranje u C++-u - pitanja i odgovori

Ne razumijem, zašto?

Ovo je za školu, reko profa da odradimo da ukucani broj ispisuje znamenku po znamenku. Nije rekao na koji način, ovo mi je prvo palo na pamet. Radili smo s modulima desetke, no to mi djeluje komplicirano.

 
0 0 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Dex.pwn kaže...

Ne razumijem, zašto?

Ovo je za školu, reko profa da odradimo da ukucani broj ispisuje znamenku po znamenku. Nije rekao na koji način, ovo mi je prvo palo na pamet. Radili smo s modulima desetke, no to mi djeluje komplicirano.

Edsger Dijkstra - "Go To Statement Considered Harmful"

 

Kada prolazis kroz string (mislim na char*), nemoj za provjeru kraja koristiti izraz i < strlen(str) jer u svakoj iteraciji racunas duljinu string, a racunanje ima slozenost O(n). Mozes prije petlje izracunati duljinu i dodijeliti vrijednost nekoj varijabli ili koristiti izraz str[i] != '\0'.

for (int i = 0; str[i] != '\0'; i++) { ... }

 

btw jesi li pokusao da uneses broj koji ima vise od 11 znamenki?

14 godina
odjavljen
offline
Re: Programiranje u C++-u - pitanja i odgovori
Jesam, provjera dobro radi
17 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
Dex.pwn kaže...
Jesam, provjera dobro radi

 Ne treba ti namespace std, koristiš C a ne standardnu biblioteku C++.

 

Ispis char niza možeš napraviti i ovako.

Dekadska vrijednost char znaka za prekid niza je 0, a u C i C++ bool vrijednost od 0 je false, za različito od 0 je true.

 

char n[12] = "12345";
   int i = 0;
   while (n[i])
      printf("%c", n[i++]);

E-mail:
Lozinka:
 
vrh stranice