Násobení pod sebou – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Násobení pod sebou – C / C++ – Fórum – Programujte.comNásobení pod sebou – C / C++ – Fórum – Programujte.com

 

Al0
Věrný člen
5. 11. 2010   #1
-
0
-

Zdravím.. do školy píšu program, který má za úkol podrobně vypsat násobení dvou čísel pod sebou. F-ce nasob_radek() násobí vždy jednu číslici s horním číslem, a ukládá výsledek do pole radek. Kod:

void nasob_radek(){

radek = new int[vel_y];

for(int i = 0; i < vel_y; i++){
radek[i] = atoi(&y[(vel_y-(i+1))]) * atoi(x);
cout << y[(vel_y-(i+1))] << " x " << atoi(x) << " = " << radek[i] << endl; // výpis z důvodu kontroli
}

for(int j = 0; j < vel_y; j++){
cout << radek[j] << endl;
}
}


Program vypíše správně příklad(6. řádek kodu), ovšem nenásobí správně. U příkladu 1564*159 násobí takto:

9 * 1564

59 * 1564
159 * 1564


ovšem vypíše:

9 * 1564

5 * 1564
1 * 1564


nemohu pochopit kde je chyba, máte nějaký nápad? díky..

Nahlásit jako SPAM
IP: 217.170.97.–
PSP user|Web developer|C4D user||Maya Lamer|Photoshop User|Guitar player
Quiark0
Věrný člen
5. 11. 2010   #2
-
0
-

S použitím debuggeru na to přijdeš. Pokud máš tu smůlu, že tvé vývojářské prostředí žádný funkční debugger nemá, doporučuju M$ Visual C++ Express.

Nahlásit jako SPAM
IP: 90.178.173.–
Al0
Věrný člen
7. 11. 2010   #3
-
0
-

No když použiju debugger a přidám breakpointy, tak nic moc nezjistím, jelikož mi to ukáže to samé, co si púro kontrolu vypisuji..

Nahlásit jako SPAM
IP: 158.196.40.–
PSP user|Web developer|C4D user||Maya Lamer|Photoshop User|Guitar player
petr.satka0
Newbie
7. 11. 2010   #4
-
0
-

To Al :
Po rychlém prohlédnutí bych problém viděl zde atoi(&y[(vel_y-(i+1))]) //řádek 5 a zde y[(vel_y-(i+1))] //řádek 6.

Zatím co ve výpočtu pracuješ s adresou znaku, ve výpisu používáš znak. Funkce atoi(), tedy dostane adresu znaku na pozici (vel_y-(i+1)). Jelikož atoi() převádí C string na int, převede vše od předané adresy až po konec stringu \0.

Nahlásit jako SPAM
IP: 217.112.175.–
Al0
Věrný člen
10. 11. 2010   #5
-
0
-

Jaj už chápu, díky! Vyřešil jsem to přidáním pomocné proměnné, do které převedu jednotlivý znak čísla y, a až potom tu proměnnou převedu na INT.. díky!

Nahlásit jako SPAM
IP: 158.196.181.–
PSP user|Web developer|C4D user||Maya Lamer|Photoshop User|Guitar player
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 15 hostů

Podobná vlákna

Sčítání pod sebou — založil Rygy

DIVy pod sebou (mezera) — založil Tomas Kapunkoi

Dve nahodna cisla za sebou — založil CommanderZ

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý