Kezdőoldal » Számítástechnika » Programozás » Miért nem működik ez a program...

Miért nem működik ez a program c++ -ban?

Figyelt kérdés

#include <iostream>

#include <stdlib.h>


using namespace std;


int main ()


{

int i;

int x;

int y;

int z;

int utszamjegy;

const int paros[5]={0,2,4,6,8};

const int paratlan[5]={1,3,5,7,9};



cout << "Kerem az x szamot: "; cin >> x;

cout << "Kerem az y szamot: "; cin >> y;


z = 0;


do {

while (x!=0 and y !=0){

utszamjegy = x%10;}

i = 0;

while (utszamjegy != paratlan[i]){

++i;}

z = z+x+y-1;

x = x-1;

y = y-1;

cout << "A szorzat erteke: " << z;

while (utszamjegy != paros[i]){

++i;}

y = 2*y;

x = x/2;

}

return 0;


}



A cél hogy kiszámítsuk két szám szorzatát, de szorzás nélkül. A matematikai háttere nem lényeges, és meg lehetne oldani egyszerűbben is, de én gyakorlás miatt tömbökkel szeretném.

A célom az volna hogy beolvasom a két (egész) számot, (x,y) megnézem hogy az x utolsó számjegye megegyezik-e a páros / páratlan tömb valamelyik elemével, amelyikkel megegyezik, azt az utasítás sort kell végrehajtani, kész.

A gond az hogy futtatásnál, miután bekéri a számokat nem csinál semmit a program, megáll. Ötletek?



2013. okt. 18. 21:17
1 2 3 4
 31/35 anonim ***** válasza:

Milyen matematikában, ne csesszél fel:D


Gyors tipp, mivel nem merem kipróbálni:

ha x kettő hatvány akkor működik, mert addig osztod 2-val, amíg 1 maradékot nem ad. Ekkor a kettő hatványokat átvitted y-ra, belép az if-be (mivel 1%2 = 1) és kiírja x+y-1et ami igazából y. Azért helyes, mert "amennyiedik" 2 hatványon volt x, annyit vitt át y-ra.

Ez után x = x-1 = 0, tehát kilép.


C-ben nem írunk olyan hogy 'and', van helyette &&.


A tanárt meg újra kellene képezni, mert alkalmatlannak ítélem a munkája elvégzésére. Szabad tudni hol tanulsz?

2013. okt. 18. 23:58
Hasznos számodra ez a válasz?
 32/35 A kérdező kommentje:
Kötelezővé kellene tenni a magyar szak elvégzését is a programozóéval párhuzamosan, mert úgy látszik a szöveg értés itt nulla körül mozog. A kérdés az volt hogy...mindegy fent le van írva, nem írom ki megint. De kezdem a dolgot már kapizsgálni, úgyhogy köszi az eddigi értékes commenteket!
2013. okt. 19. 00:00
 33/35 anonim ***** válasza:
Azért mert egy nagy rakás értelmezhetetlen fos a kódod, azért.
2013. okt. 19. 00:06
Hasznos számodra ez a válasz?
 34/35 anonim ***** válasza:

a szorzás ismételt összeadás

pl. 5*9 = 9 + 9 + 9 + 9 + 9


vagyis fogod az egyik számot, és annyiszor adod össze saját magával amennyit a másik szám

ezt egy sima for-al meg lehet oldani, semmi extra nem kell hozzá

2013. okt. 19. 01:10
Hasznos számodra ez a válasz?
 35/35 anonim ***** válasza:

Amúgy rájöttem, ez ugyanaz a csávó lehet, aki a múltkor 70 sorban akarta megírni azt a programot, hogy "kérj be két számot, majd írd ki őket". :D

Ott is volt minden, ne használjunk printf-et a kiíráshoz, kell benne tömb, meg ciklus...

Totál agyatlan a csávó...

Itt is annak eldöntése, hogy egy szám páros úgy, hogy végigmegy egy tömbön... Beteges.


Srácok kár foglalkozni vele, menthetetlen, hadd kínlódjon csak!

2013. okt. 19. 10:14
Hasznos számodra ez a válasz?
1 2 3 4

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!