Kezdőoldal » Számítástechnika » Programozás » Számjegyek összege c++ban?...

Számjegyek összege c++ban? Szám számjegyekre való bontása?

Figyelt kérdés
Olyan program kéne ami a szám számjegyeit összeadja. Úgy gondoltam hogy stringgé alakítom. Ez meg is van, de. Hogy tudom felbontani számjegyekre? Onnantól már megvan, összetudom adni (szerintem), csak felbontani nem. Gondoltam a 10-zel való osztogatásra is, de inkább maradnék a string nél. Ötlet?

2014. okt. 15. 22:46
 1/8 anonim ***** válasza:

Hát ha már Stringed van, ott vannak a számjegyek: a String egyes karakterei, csak megindexeled őket és csók. Egyesével visszaalakítod számra egy összegzés cikluson belül és kész is vagy.


Ugyanakkor szerintem nem String-re alakításra gondoltak, mikor feladták a házit, mert pofonegyszerű, és NULLA munkád van benne. Osztogass inkább 10-el, ezt várják el.

2014. okt. 15. 22:49
Hasznos számodra ez a válasz?
 2/8 A kérdező kommentje:
Szóval átalakítom stringgé mondjuk a 12-őt. Lesz egy szövegformátumu 12-őm. Hogy lesz belőle 1 és 2?
2014. okt. 15. 22:53
 3/8 anonim ***** válasza:

Annak idején kb egy hello world ig tartott a kitartásom c++ ban, úgyhogy rá kellett keresnem(több, mint 5 másodpercet elvett az életemből a folyamat)


[link]


Ezt átalakítod intté és kész vagy(erre már nem keresek rá helyetted).

2014. okt. 15. 23:06
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:

#include<stdio.h>


int main (void)

{

int szam = 12345;

int osszeg = 0;

int maradek = 0;


while (szam > 0)

{

maradek = 0;

maradek = szam % 10;

osszeg = osszeg + maradek;

szam = szam / 10;

printf("maradek:%d osszeg:%d szam:%d \n", maradek, osszeg, szam);

}

return 0;

}



}

2014. okt. 16. 07:11
Hasznos számodra ez a válasz?
 5/8 tabaki ***** válasza:

@Kérdező, 22:53


#include <iostream>

using namespace std;


int main()

{

char szoveg[256]="";

unsigned int i;

cout<<"Első tíz számjegy kiírása\n\nKérek egy hosszú számot: \n";cin>>szoveg;

for(i=0;i<10;i++) cout<<szoveg[i]<<"\n";

cout<<"Kész."<<"\n";

return 0;

}

2014. okt. 16. 10:42
Hasznos számodra ez a válasz?
 6/8 anonim ***** válasza:

Legyen egy karakter tömböd, és legyen egy összegző egészed.


  char szam[64];

  int osszeg = 0;


Bekérsz egy számot stdin-ről, a szam karakter tömbbe. (most tekintsünk el a rossz inputtól). Ezt C++ így teheted meg:


  std::cin.getline(szam, 64);


A szöveg végét mindig '\0' karakter jelzi, de azért legyünk óvatosak; ne menjünk 63 fölé.

Tehát a ciklusod így fest:


  for (int i = 0; (i < 64) && szam[i]; i++)


Így minden karaktert meg tudsz vizsgálni egyenként. Most jön a trükk: A számok az ASCII táblában a 48. indextől kezdődnek, így ki is tudjuk számolni az értéküket. A for ciklusodban tehát ennek kell lennie:


  osszeg += szam[i] - 48;


Ennyi,meg is oldottuk a feladatot 5 sorban.

2014. okt. 16. 11:53
Hasznos számodra ez a válasz?
 7/8 A kérdező kommentje:
Köszönöm a válaszokat! Hidd el, én is rákerestem google-ban, de semmi használhatót nem találtam.
2014. okt. 16. 14:08
 8/8 anonim ***** válasza:

Én egyetlen keresést szántam rá a következő kulcsszóval: "c++ sum digits string".

A következő link volt az első találat:

[link]


Kb 10 mp-et vett el az életemből.

2014. okt. 18. 18:44
Hasznos számodra ez a válasz?

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!