Kezdőoldal » Számítástechnika » Programozás » C-vel kapcsoltban miért...

C-vel kapcsoltban miért történik ez?

Figyelt kérdés

Egy szimulációt írok, amelynek során nagy mennyiségű adattal dolgozok. Van egy for ciklusom, amelyet 0-tól 2 milliárdig futtatva teljesen korrekt és várható eredményeket kapok, de 3 milliárdnál már gondok vannak. Először azt hittem, hogy elszámoltam magam és 9 óra alatt még nem volt ideje kiszámolni a dolgokat a gépnek, de aztán tetem bele egy tájékoztató funkciót, amely szerint a ciklus 71%-nál megáll egy hosszabb időre, majd visszaugrik 1%-ra és ez így megy a végtelenségig. Kipróbáltam 2.5 milliárdig a ciklust, ebben az esetben ez az érték 85%-ra adódott.

3 milliárd 71%-a 2 130 000 000, amíg 2.5 milliárd 85%-a 2 125 000 000, tehát az eltérés 5 000 000. A számok nagyságát tekintve ez igen kicsiny, szóval nekem ebből az következik, hogy a ciklus megközelítőleg a 2.12*10^9-es tartományban gőzöl be. Tudja valaki, hogy miért van ez így és hogy oldható ez meg? Egyszerűen nem értem, hogy ha jó 2.0 milliárdra, akkor miért nem jó 2.2 milliárdra...

Bár már találkoztam a C-nek különböző szépségeivel, sajnos még távolról sem értek hozzá olyan szinten, mint szeretnék.


Egyébként ennek lehet köze ahhoz, hogy milyen fordítót használok? Esetleg javasolhatnátok egyet-kettőt, igazán megköszönném. Jelenleg Pelles-t használok.


2014. jún. 29. 23:04
1 2
 1/15 anonim ***** válasza:
100%
2014. jún. 29. 23:12
Hasznos számodra ez a válasz?
 2/15 anonim ***** válasza:
100%
Túlcsordul a változód. Egy előjeles 32 bites egésszel maximum 2,147,483,647-t lehet ábrázolni. Használj unsigned intet (ezzel dupláját tudod ábrázolni, de negatívat nem lehet), de még inkább long longot (akár unsigned-et), ezzel sokkal nagyobb számokat tudsz ábrázolni.
2014. jún. 29. 23:16
Hasznos számodra ez a válasz?
 3/15 A kérdező kommentje:
Sajnos az angolom jelenleg elég életképtelen dolog. :(
2014. jún. 29. 23:16
 4/15 A kérdező kommentje:
Mindjárt kipróbálom, köszönöm szépen!
2014. jún. 29. 23:16
 5/15 anonim ***** válasza:
30%
Ilyen esetben leginkább valamilyen végtelen egész típust kellene használni
2014. jún. 30. 10:09
Hasznos számodra ez a válasz?
 6/15 anonim ***** válasza:
52%
Nem létezik végtelen egész típus.
2014. jún. 30. 10:09
Hasznos számodra ez a válasz?
 7/15 A kérdező kommentje:

Este átírtam és elindítottam, aztán elmentem aludni, de reggel nem volt eredmény, mert nem jól írtam át.. :D

Most megcsináltam elvileg jól, de még csak 25%-on van.


Este még leszedtem a Microsoft Visual Studio C++-t, úgy ahogy van a teljes forráskódot átmásoltam Pellesből, de ott valamiért nem futott le, nem tudjátok véletlenül, hogy miért? Ugyan ez volt Dev C++-nál is.

2014. jún. 30. 10:47
 8/15 anonim ***** válasza:
Nem tudjuk.
2014. jún. 30. 10:49
Hasznos számodra ez a válasz?
 9/15 anonim ***** válasza:

C++-hoz van

[link]


Gondolom C-hez is, ha meg nincs, akkor lehet írni.

2014. jún. 30. 10:55
Hasznos számodra ez a válasz?
 10/15 anonim ***** válasza:
Tessék: [link]
2014. jún. 30. 10:56
Hasznos számodra ez a válasz?
1 2

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!