- Vezetékes FÜLhallgatók
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- GoPro Topic
- Micro Four Thirds
- Fejhallgató erősítő és DAC topik
- Autós kamerák
- SSD kibeszélő
- Vezetékes FEJhallgatók
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
Hirdetés
-
30 TB-ot meghaladó HDD-ket demonstrál a Toshiba
ph Az egyik HAMR, a másik MAMR technológiával éri el a komoly tárkapacitást.
-
Kipróbáltuk a Xiaomi 14 Ultra fotós szettjét
ma A markolat akkumulátort és hasznos gombokat kínál, a tok szűrőket fogad be.
-
Vizsgálják a Waymo robotautók váratlan viselkedését
it Vizsgálatot indított az USA közlekedésbiztonsági hatósága a Waymo robotautók váratlan viselkedése miatt.
Új hozzászólás Aktív témák
-
Korcsii
őstag
válasz shinodas #3137 üzenetére
Rég C-ztem már, de úgy rémlik, hogy amikor létrehozod a tömböt, akkor a zárójelbe a méretét írod, tehát int tomb[5] egy 5 elemű int tömb lesz. A sorszámozás persze 0-tól indul. Így for-ban 0-tól <méret-ig lehet számolni, ami pont jó, mert szép, megjegyezhető, és mindent elárul - pl azt is, hogy 6 eleműnek akartad definiálni.
[ Szerkesztve ]
-
Chipi333
csendes tag
válasz shinodas #3151 üzenetére
Az vele a baj, hogy ha tomb egyik eleme sem egyezik a tomb_user első elemével akkor a többit már meg sem fogja nézni, mert egyszer csak i==6 lesz miközben j==0 és kilép a while-ból.
Szóval ezt két egymásbaágyazott for-al kéne, valahogy így:while(i<6)
{
while( j<6)
{
if(tomb[i]==tomb_user[j])
printf("valami");
++j;
}
j=0;
++i;
} -
Chipi333
csendes tag
válasz shinodas #3153 üzenetére
Hát ez majdnem jó, de tomb[5]-öt sosem fogod megnézni. Szerintem nem érdemes ilyen random konstrukciókkal próbálkozni, mert jó eséllyel benézel valamit. Egy ilyen jellegű próblémát két egymásba ágyazott iterációval szokás megoldani, mert akkor végig mész mindkét tömbön biztosan
-
ArchElf
addikt
válasz shinodas #3195 üzenetére
Akkor float helyett valami decimális számolást kell alkalmazni (most hirtelen csak c++ megoldást találtam).
AE
[ Szerkesztve ]
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
Jester01
veterán
válasz shinodas #3206 üzenetére
A srand inicializálja a véletlenszám generátort valami kiinduló érték alapján. Azonos kiindulási értékből mindig azonos sorozat lesz (debuggoláshoz jó például). Hogy mindig más legyen, az aktuális idő van megadva.
A rand() az visszaad egy egész számot a [0, RAND_MAX] intervallumból. A % az nyilván a maradékképzés, tehát végül is a [0, 8] intervallumban fogsz számokat kapni.
[ Szerkesztve ]
Jester
-
Karma
félisten
válasz shinodas #3206 üzenetére
Az egész mögött egy pszeudo-véletlenszám generátor van, ami egy kezdőérték (seed) alapján generál számokat. (Nem valódi véletlenszámok, de ez most mindegy.)
A srand függvény szolgál ennek a seed értéknek a beállítására. A time(NULL) függvény az aktuális rendszeridőt adja vissza egy egész szám formájában (1970. január 1. óta eltelt másodpercek száma); ha ezt adod meg seednek, gyakorlatilag minden másodpercben más véletlenszámokat kapsz.
Azonos seed mellett meg ugyanazok a számsorozat jönne ki a rand() hívogatása során.
A rand() egyébként ez a seed meg a belső algoritmusa alapján egy 0 és RAND_MAX (legalább 32767, maximum MAX_INT, környezetfüggő) közötti egész számot ad vissza. Ha ennek veszed a kilences maradékát, 0 és 8 közötti számokat kapsz.
Szerk.: Eh, lassú voltam.
[ Szerkesztve ]
“All nothings are not equal.”
-
Chipi333
csendes tag
válasz shinodas #3206 üzenetére
Az srand( time(NULL) ) beállítja a random fv kezdeti értékét az aktuális időre. A rand() pedig generál egy véletlenszámot (ami nem annyira véletlen). A %9 azért kell hogy 0-8 intervallumra és ne az int telje értékkészletére generáljon.
Az srand( time(NULL) ) azért kell mert a rand fv egyébként teljesen determinisztikus, szóval azonos kezdeti értékről indítva mindig ugyanazt a sorozatot generálná. Ezért általában az idő alapján szokás indítani, mert az jó eséllyel minden futtatáskor más lesz.Szerk.: De sokakat megmozgatott ez a téma
[ Szerkesztve ]
-
ArchElf
addikt
válasz shinodas #3210 üzenetére
Még annyi hozzá, hogy ez így teljesen determinisztikus - mert ha a ki lehet következtetni a véletlenszám legenerálásának idejét, akkor ez minden lesz, csak nem random (sőt, ha ezt az eljárást egy mp-en belül többször meghívod, akkor mindig ugyanazt a "véletlenszámot" adja majd vissza - ha mindig inicializálsz a véletlenszám generálás előtt).
AE
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
Korcsii
őstag
válasz shinodas #3311 üzenetére
Sehogy. (hmm, a legújabb C-ben vagy C++-ban nincs erre valami hákolás?)
Hozz létre egy struct-ot, és azt add vissza. Vagy adj a függvények pointer-eket is paraméterként, amiben eltárolja a végeredményeket.void fv(int a, int b, int *x, int *y) {
*x = a;
*y = b;
}[ Szerkesztve ]
-
kispx
addikt
válasz shinodas #3314 üzenetére
A függvényed így néz ki:
int massal_magan (char result[], int *magan, int *massal)
Tehát második paraméterként egy int-re mutató pointert vár.A függvényhívásod így néz ki:
int *magan=0;
//...
massal_magan(result, *magan, massal);A második paraméternél a mutatott objektumot adtad át és nem a rá hivatkozó pointert.
Röviden nem kell az índirekció művelete. ( * )Szerk.: de érdekes, hogy a 3. paraméternél jól használtad a mutatót.
[ Szerkesztve ]
-
kingabo
őstag
válasz shinodas #3314 üzenetére
A magan és a massal az miért 1-1 pointer? De ha már pointer, akkor miért nem egy létező memória területre mutatnak: másik változó, vagy általad lefoglalt memória terület?
Régen c-ztem már, de sztem a pointer helyett, mintha egy referenciát kéne átadni és akkor nem kell szenvedned a pointerezéssel. Amit -nem sértésként- de nem igazán értesz... -
Jester01
veterán
válasz shinodas #3318 üzenetére
A két return-nek nincs értelme.
A *magan_p++; pedig nem az értéket növeli, hanem a pointert. Helyesen (*magan_p)++; MOD: illetve a talán olvashatóbb *magan_p += 1; forma. Nyilván ugyanez vonatkozik a massal_p-re is.Érdemes a fordító figyelmeztető üzeneteit bekapcsolni és átgondolni. Jelen esetben például:
t.c: In function 'massal_magan':
t.c:86: warning: value computed is not used
t.c:89: warning: value computed is not used
t.c:96: warning: will never be executedJa egyébként nem minden mássalhangzó ami nem magánhangzó (például a szóköz, számok, írásjelek)
[ Szerkesztve ]
Jester
-
kingabo
őstag
válasz shinodas #3318 üzenetére
Egyrészt az fv meghívásakor a visszatérési értéket semmilyen változónak nem adod értékül, másrészt a 2 return nem tud végrehajtódni, ugyanis már első után befejeződik a függvény. Jelen esetben a függvényednek void-nak kéne lennie, és nem kell a végére return.
Egyébként a problémádra itt #4 JackOfAllTrades hsz-e mutat egy pl-t, erre a megoldásra céloztam fentebb.
Korábban a pointerekről írtam ide egy hosszabb hsz-t, igaz a paraméter átadás nem volt része, keresővel sztem hamar megtalálod.
Egyébként könyvből tanulsz, netes cikkből, vagy megpróbálsz rájönni hogy mennek a dolgok? Az idők folyamán elég sok könyv, jegyzet, példatár lett itt linkelve érdemes őket megnézni.
szerk: és még lassú is vagyok.
[ Szerkesztve ]
-
-
Jester01
veterán
-
Karma
félisten
válasz shinodas #3389 üzenetére
Mert az == operátor az egyenlőség(-tesztelő) operátor, neked meg az = kéne, ami az értékadás.
Másrészt ha 145-ig futtatod a ciklust, frankón túlindexeled a tömböt. (0-143 a tömb lehetséges indexei).
Az ubuntus hibát passzolom.
[ Szerkesztve ]
“All nothings are not equal.”
-
kispx
addikt
-
Karma
félisten
válasz shinodas #3397 üzenetére
Linux alatt régóta nem dolgoztam IDE-vel (mindent letudtam vimmel, GCC-vel és ha nagyon muszáj ddd-vel), úgyhogy konkrét értelmesebbet nem tudok mondani. Anno a KDevelop tetszett, meg van az Anjuta nevű GNOME-os cucc.
Alternatíva lehetne a Qt Creator vagy a NetBenas, de azok ugyanúgy bugosak mint a C::B... Az Eclipse-szel nem tudom mi a helyzet.
kispx: Ezt ugye viccből írtad?
[ Szerkesztve ]
“All nothings are not equal.”
-
kispx
addikt
válasz shinodas #3402 üzenetére
Hogy érdemben is válaszoljak:
Jelenleg Qt Creatort-t használok a Qt része miatt. Kényelmes IDE, ha megszokod.
Egyetemi éveim alatt egy fél évig Netbeans-t használtunk C-hez. Nem volt vele probléma. De úgy vettem észre, hogy egy kicsit lomha a CB-hez képest, de lehet, hogy egy jobb gép is kelletett volna. (2-3 éve volt, szóval az akkori verzióról beszélek, nem tudom, hogy azóta mennyit fejlődött)[ Szerkesztve ]
-
kispx
addikt
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Renault, Dacia topik
- A fociról könnyedén, egy baráti társaságban
- Vezetékes FÜLhallgatók
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Honor Magic V2 - origami
- Kerékpárosok, bringások ide!
- Mibe tegyem a megtakarításaimat?
- Jobb zoom, egyszerűbb kijelző - megérkezett a Sony Xperia 1 VI
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- sziku69: Szólánc.
- További aktív témák...
- Új Lenovo Ideapad 5 Pro Bivaly Ultrabook -35% 14" RYZEN 5 6600HS 16/512 QHD+ 2,8K Radeon 2GB 90Hz
- Komplett épített pc eladó szükség esetén minden kiegészítővel
- Dell Precision 7530
- Yamaha MusicCast RX-A1070
- Prémium alkatrészek! RoG 3070 Ti Z590 11600K 1000 Watt Platinum Vízhűtés 32GB RAM 1TB NVME Garancia!
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Ozeki Kft.
Város: Debrecen