Kezdőoldal » Számítástechnika » Programozás » Miért csak egyszer fut le a...

Miért csak egyszer fut le a ciklus? C++.

Figyelt kérdés

Itt a kód.

A kimenetben csak a 10 látni.

Úgyhogy egyszer fut le de miért?


Itt a kód:

//main.cpp

#include<iostream>

#include<string>

#include<vector>

#include<sstream>


using std::cout;

using std::string;

using std::vector;

using std::stringstream;


typedef unsigned short ushort;


int main()

{

vector <string> vSzavak;

stringstream s;

for(ushort i = 0; i < 10; ++i)

{

string temp;

s << (i+1)*10;

s >> temp;

vSzavak.push_back(temp);

cout << vSzavak[i] << ' ';

}


return 0;

}


Azt a feladatot találtam ki hogy 10 darab intet átkonvertálok stringé és bele teszem a vectorba majd ki íratom.


Lehet valahogy egyszerűbben megoldani amúgy.


2013. jan. 1. 23:41
1 2
 1/14 anonim ***** válasza:

Hát ez elég tragikus, hogy őszinte legyek.

Eleve a feladatnak sincs semmi értelme.

Egyébként nem egyszer fut le a ciklus, hanem egyszer, csak utána szóközöket ír ki.

Egyszerűbben megoldva:

#include<iostream>


using namespace std;


int main()

{

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

{

cout << (i+1)*10<<' ';

}


return 0;

}

2013. jan. 1. 23:56
Hasznos számodra ez a válasz?
 2/14 anonim ***** válasza:
"nem egyszer, hanem tízszer"
2013. jan. 1. 23:56
Hasznos számodra ez a válasz?
 3/14 A kérdező kommentje:

De mi a hiba benne?

Miért nem működik ahogy kéne?

2013. jan. 2. 00:11
 4/14 A kérdező kommentje:

És miért felejti el ki íratni a többi vector elemet?


És ez meg miért nem fordul le?:

//main.cpp

#include<iostream>

#include<string>

#include<vector>

#include<sstream>

#include<cstdlib>


using std::cout;

using std::string;

using std::vector;

using std::stringstream;


typedef unsigned short ushort;


int main()

{

vector <string> vSzavak;

stringstream s;

ushort sum;


for(ushort i = 0; i < 10; ++i)

{

string temp;

s << (i+1)*10;

s >> temp;

vSzavak.push_back(temp);

cout << vSzavak[i] << ' ';

}


while(!vSzavak.empty())

{

sum+= atoi((vSzavak.back().c_str()));

vSzavak.pop_back();

}


cout << "sum = " << sum; //hibaüzi: ‘sum’ may be used uninitialized in this function [-Wmaybe-uninitialized]


return 0;

}


Mi baja van ennek.

2013. jan. 2. 00:13
 5/14 anonim ***** válasza:
Nekem lefordul az utolsó kódod is, habár attól még az is szar. :)
2013. jan. 2. 00:16
Hasznos számodra ez a válasz?
 6/14 A kérdező kommentje:

Megoldottam már lefordul.

Csak már felidegeskedtem meg fáradt is vagyok.


De elmagyarázhatná valaki hogy miért csak a szóközöket hajlandó ki íratni.

2013. jan. 2. 00:16
 7/14 anonim ***** válasza:

‘sum’ may be used uninitialized in this function [-Wmaybe-uninitialized] ez egyébként csak warning, nem fordítási hiba.

Lehet neki kéne állni teljesen előlről a dolgoknak...

2013. jan. 2. 00:17
Hasznos számodra ez a válasz?
 8/14 A kérdező kommentje:

A cikus csak egyszer fut le.

//main.cpp

#include<iostream>

#include<string>

#include<vector>

#include<sstream>

#include<cstdlib>


using std::cout;

using std::string;

using std::vector;

using std::stringstream;


typedef unsigned short ushort;


int main()

{

vector <string> vSzavak;

stringstream s;


for(ushort i = 0; i < 10; ++i)

{

string temp;

s << (i+1)*10;

s >> temp;

vSzavak.push_back(temp);

}


cout << vSzavak[1]; //Azért mert erre nem ír ki semmit.


return 0;

}


Miért van ez.

2013. jan. 2. 00:20
 9/14 anonim ***** válasza:

Nyilván a stringstream-mel van valami probléma, nem ismerem annyira.

Egyébként a sum-ot sem inicializálod 0-ra, tehát a végeredmény is mindig más lesz.

Ráadásul a kiíró ciklus is érdekes kicsit, sima vektort úgy használsz, mintha verem vagy sor lenne, egy egyszerű for ciklusos kiíratás helyett...

Értem én, hogy gyakorolni szeretnél, de könyörgöm legalább keress valami épkézláb feladatot, mert hülyeséget persze, hogy nem sikerül normálisan lekódolni.

2013. jan. 2. 00:20
Hasznos számodra ez a válasz?
 10/14 anonim ***** válasza:

Hogy a f*szba futna már le az a sima számlálós ciklus egyszer? :D

Akármit csinálsz a ciklusmagban, az még 10szer fut le, csak sima szóközöket raksz bele a vektorba, és nem semmit nem ír ki, hanem egy nyamvadt szóközt ír ki.

2013. jan. 2. 00:22
Hasznos számodra ez a válasz?
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!