• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dlaczego program wariuje?

Object Storage Arubacloud
+1 głos
223 wizyt
pytanie zadane 6 stycznia 2016 w C i C++ przez 0xf Dyskutant (8,180 p.)
Witam chce wiedzieć dlatego ten kod wariuje dodam na wstępie że gdy w pętli mamy i=i+2 to wszystko działa elegancko. Daje kod: #include using namespace std; long double a, b, c; int main() { cout<<"Jaka liczbe chcesz spotegowac: "<<endl; cin>>a; c=a; for (int i=1; i<15; i=i++) { b=c*a; cout<<i<<". "; cout<<b<<endl; c=b*a; cout<<i + 1<<". "; cout<<c<<endl; } return 0; } Dzięki za pomoc pozdrawiam

4 odpowiedzi

0 głosów
odpowiedź 6 stycznia 2016 przez radek024 Szeryf (77,160 p.)
Możesz umieścić kod w funkcji do tego przeznaczonej? Jest strasznie nie czytelny, ale już mam kilka błędów - tylko wstaw wszystko tak, aby można było znaleźć ich jeszcze więcej :).
0 głosów
odpowiedź 6 stycznia 2016 przez Dorion300 Szeryf (90,250 p.)

Tak się cieszę ze istnieją IDE układający kod.
w i=i++ jest błąd.
powinno być same i++ w pętli for.

Jak tu:

for (int i=1; i<15; i++)



poprawny kod:
http://wklej.org/id/1897822/

komentarz 6 stycznia 2016 przez Qhoros Mądrala (7,110 p.)
To nie ma znaczenia. Operacje tego typu wykonuje się od strony prawej, zatem najpierw nastąpi inkrementacja, a na koniec przypisanie do samej siebie. Zapis nielogiczny, ale nie zawiera błędu.
komentarz 6 stycznia 2016 przez Dorion300 Szeryf (90,250 p.)
Tak?
A gdy to usunąłem to wszystko ładnie działa.
komentarz 6 stycznia 2016 przez Qhoros Mądrala (7,110 p.)
edycja 6 stycznia 2016 przez Qhoros
Przy starym zapisie też będzie hulać.
komentarz 6 stycznia 2016 przez Dorion300 Szeryf (90,250 p.)
Jak jest x = 5  to x++ zwraca 5.
A dopiero potem powiększa o jeden...
Więc x=(x++) nie zmienia wartości.

Przynajmniej u mnie.
komentarz 6 stycznia 2016 przez Qhoros Mądrala (7,110 p.)
http://postimg.org/image/xoza6ngjz/

A u mnie śmiga :)
Cóż, magia!
komentarz 6 stycznia 2016 przez Dorion300 Szeryf (90,250 p.)
Podejrzewam że to wina kompilatorów.
U mnie kompilator i++ działa później niż znak równości.
I tworzy mi się nieskończona pętla.

A u ciebie działa inaczej ponieważ masz inny kompilator i u twojego kompilatora najważniejszy jest i++ potem znak równości.

U mnie tak to wygląda:
http://s2.ifotos.pl/img/konsolkac_snxsxsa.png

podejrzewam że Jonbi2 ma kompilator GNU GCC z C::B, po na tym forum jest on bardzo popularny.
komentarz 6 stycznia 2016 przez efiku Szeryf (75,160 p.)
Szczerze, to na Windowsa → VS. Na linuxa i inne: Clion. Dla mnie code blocks to takie coś jak dev :P Miałem na chwile na swoim linuxie to, ale wyleciał po 5 minutach ^^.
komentarz 6 stycznia 2016 przez Dorion300 Szeryf (90,250 p.)
Też tak uważam, beznadziejnie w nim pisze jak i czasem nie potrafi pokazać niektórych rzeczy przy podpowiedziach.
Także mam VS który obsługuje C++.
Ale code::block jest szybszy w uruchamianiu i to z niego korzystam jak coś chce komuś pomóc.
A tak to nie piszę w C++ wcale.
0 głosów
odpowiedź 6 stycznia 2016 przez Qhoros Mądrala (7,110 p.)
#include <iostream>

using namespace std; 


long double a, b, c; 

int main() 
{ 
	cout<<"Jaka liczbe chcesz spotegowac: "<<endl; 
	cin>>a; 
	c=a; 
	
	for (int i=1; i<15; i=i++) 
	{ 
		b=c*a; cout<<i<<". "; 
		cout<<b<<endl; 
		c=b*a; 
		cout<<i + 1<<". "; 
		cout<<c<<endl; 
	} 
	system("pause");
	return 0; 
} 

System nie wariuje, po prostu liczby są bardzo duże i zmienia się zapis. Ot co.

0 głosów
odpowiedź 6 stycznia 2016 przez Mesiak Bywalec (2,380 p.)
Generalnie wszystko działa dobrze program wcale nie wariuje po prostu nie wyświetla Ci większych liczb. Możesz to zmienić dodając bibliotekę <iomanip> i w pętli dodaj taką linijkę :

cout << setprecision(1000);

teraz wyświetlą Ci się wszystkie liczby ;)
komentarz 6 stycznia 2016 przez 0xf Dyskutant (8,180 p.)
Dziękuję za pomoc

Podobne pytania

+1 głos
1 odpowiedź 75 wizyt
pytanie zadane 7 stycznia 2023 w HTML i CSS przez zbiku25 Bywalec (2,940 p.)
0 głosów
0 odpowiedzi 5,343 wizyt
pytanie zadane 24 października 2020 w Offtop przez magda6959 Nowicjusz (120 p.)
0 głosów
1 odpowiedź 799 wizyt

92,577 zapytań

141,426 odpowiedzi

319,653 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...