» »

C++ - Razbijanje števila na števke

C++ - Razbijanje števila na števke

Giller0 ::

Imam problem, kjer kot vhod dobim 11 mestno število, ki jo je potrebno razbiti na števke.

Sam sem poskušal tako:


#include <iostream.h>
#include <stdio.h>
#include <stdlib.h> 

int main()  
{ 

 div_t divresult;

 int st_vagona=0;
 int polje_stevil[11];
 float deljenec=10000000000;



 cout << "Vnesite številko: ";
 cin >> st_vagona;

 for (int stevec = 0; stevec < 11; stevec++)
 {
 	 divresult = div ( st_vagona, deljenec);
	 polje_stevil[stevec] = divresult.quot;
 	 st_vagona = divresult.rem;
	 deljenec=deljenec/10;
 }


 for (int stevec1 = 0; stevec1 < 11; stevec1++)
 {

	 cout << "polje " <<stevec1 << ". : "<< polje_stevil[stevec1] <<endl;

 }

return 0;
}  



Prevajalnik ne javi napak, a program ne deluje pravilno. For zanko za izpis polja sem dodal, da vidim kaj se polni v polje.

Vnesel sem število 94798814112, elementi v polju pa so bili 1,0,7,3,7,4,1,8,2,3,9. Skratka narobe. Poizkušal sem z različnimi variacijami float, long int a ni pomagalo.

Torej, kje je napaka? Ob enem pa bi še vprašal, če obstaja za rešitev tega problema kakšen bolj prefinjen način, mogoče celo fukncija :8) ?

Hvala in LP!
Jow..

Jean-Paul ::

Tukaj imaš malo bolj prefinjen način:

#include <iostream>
#include <string>

int main(int argc, char* argv[])
{
	std::string str = argv[1];
	
	for(size_t i = 0; i < str.size(); ++i)
		std::cout << " " << str[i] - '0';
		
	std::cout << std::endl;

	return 0;
}


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Združevanje polj [C]

Oddelek: Programiranje
7995 (859) ragezor
»

Spreminjanje vrednosti v polju [C]

Oddelek: Programiranje
102188 (1987) specing
»

java pomoč

Oddelek: Programiranje
211980 (1372) kr?en
»

Diagram poteka - pomoč

Oddelek: Programiranje
51556 (1511) Ciklamen
»

[C++][Naloga_polja]MIN in MAX polja, izpis za x.100 stevil

Oddelek: Programiranje
222944 (2755) snow

Več podobnih tem