- Samsung Galaxy A52s 5G - jó S-tehetség
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- CMF Phone 2 Pro - a százezer forintos kérdés
- Samsung SmartTag2 teszt
- Android alkalmazások - szoftver kibeszélő topik
- Hivatalos a OnePlus 13 startdátuma
- Apple Watch Sport - ez is csak egy okosóra
- Samsung Galaxy A54 - türelemjáték
- Samsung Galaxy S24 FE - később
- iPhone topik
Új hozzászólás Aktív témák
-
kingabo
őstag
Ebben a témában erősen ajánlom Brian "Beej" Hall cikkét: magyar változat, angol több formátumban. (ez alapján írtam "chat" szervert minden benne van)
-
kingabo
őstag
Ne stringgel teszteld, vagy ha azzal, akkor karakterként irasd ki, illetve írd a végére a string lezáró \0 karaktert is. Egy int tömbbel sokkal látványosabb a dolog.
Az elmélethez: azt is érdemes megmondani, hogy mi történik, ha egy n elemű tömb n+1-edik elemére hivatkozol/írod. -
modder
aktív tag
Szerintem:
Ha eggyel növelem a mutatót eggyel tovább ugrik a memóriában ahol el van mentve a pointner.Nem egyel tovább ugrik a memóriában, ahol el van mentve a pointer, hanem:
A pointer értéke (egy memória cím, egy szám) nő annyival, ahány byte-os az adatstruktúra, amire a pointert deklaráltad.Ha új értéket adok utána - nos nem tudom ,uj értéket adtam a pointernek,de nem változott meg az értéke teljesen - maradt a régi értékéből és az újból is ? de viszont a memoria cime nem változott a pointernak
Nem a pointernek adtál új értéket, hanem annak a memóriának, amire mutat a pointered.
A programod elvileg azt csinlája, hogy 'b'-t kicseréli 'd'-re (gondolom az f az csak elírás, mert aposztrófok közé csak karaktert lehet írni)
-
kingabo
őstag
Nem tudom feladat-e, de célszerű lenne ellenőrizni, hogy tényleg számot adott-e meg a lyúzer.
Pár észrevétel a kódhoz:
- az itoa-t nem használod, szerintem felesleges a hozzá tartozó include
- if(!(mard == 0 || mard == 3 || mard == 6 || mard == 9)) helyet írhatod ezt is
if(mard != 0 && mard != 3 && mard != 6 && mard != 9)) (ha már 1 hamisat talál, akkor a többit ki se értékeli)
- nem tudom kötelezőe a fenti módon való számolás, de sokat gyorsíthatnál, ha simán csak összegzed a számjegyelet, esetleg a mard-nak a 3al vett maradékát néznéd, hogy 0-e (ez utóbbi valszeg lassabb lenne, de a kód átláthatóbbá válna, illetve könnyebben módosítható, ha 3 helyett a 9-el való osztás kell)
- for ciklus helyett egy while sokkal szebb lenne -
kingabo
őstag
Ciklusban kell végezned amit leírtam.
Tehát a példádnál maradva az első iterációban leszeded az 1-et, a szám 15 lesz, aztán a másodikban a 5-t, a szám 1 lesz, aztán a harmadikban a maradék 1 lesz, a szám 0.Szerk:
Ez azért így elég csúnya: data[sizeof(int)];!! 32bites gépen ez 4 lesz, viszont 9 számjegyű számot is lehet tárolni a változóban! -
kingabo
őstag
5let: A számot osztod maradékosan 10-el, így megkapod az utolsó számjegyet, amit hozzáadsz egy összeghez. Ezt kell addig csinálnod, amíg végül 0-t nem kapsz. Ezután megvizsgálod, hogy az összeget 3-al osztva 0-e a maradék.
C-s megvalósításhoz:
maradek = szam % 10;: a szám 10-el vett osztási maradéka (a szam változatlan marad)
szam = szam / 10;: a szám osztása 10-el (int osztás) -
Korcsii
őstag
sscanf-re gondoltam, csak rosszul... elfelejtettem, hogy fájlból olvasol...
Hogy hogyan kezeli őket, az attól függ, hogy hogyan olvasod be.
Mindenesetre fscanf-et és f(?)getc-t nem kéne keverni, elég a kettő magában is (az előbbi kódoddal levágsz egy karaktert, aztán beolvasol egy számot a maradékból).
Egyszerű programban én simán fscanf-fel olvasnék, esetleg vizsgálnám, hogy sikeres-e.
-
Korcsii
őstag
-
Jester01
veterán
Van több is
while(d != '1');
Ide nem karakter konstans kell, csak simán egy szám.Másik probléma, hogy a d-be számítod ki az új értéket de az a-t használod.
Kicsit letisztázva ilyesmi lehet:
#include <stdio.h>
int main(void)
{
int a;
scanf("%d",&a);
do
{
if (a % 2 == 0)
{
a = a / 2;
} else {
a = a * 3 + 1;
}
printf("%d\n", a);
} while (a != 1);
return 0;
} -
Jester01
veterán
Ugye a for(i = 1; i <= x; i += 2) ciklusod csak a páratlan számokon megy végig, így a végérték vagy x (ha x páratlan) vagy x - 1 (ha x páros). Ezért simán nem lehet megfordítani, mivel a kezdőértéket pontosan kell megadni. Például így: for(i = (x & 1) ? x : (x - 1); i >= 1; i -= 2)
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Androidos tablet topic
- Autós topik
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Samsung Galaxy A52s 5G - jó S-tehetség
- Robotporszívók
- Milyen házat vegyek?
- Hálózati / IP kamera
- Szeged és környéke adok-veszek-beszélgetek
- Projektor topic
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- További aktív témák...
- Üzletből, garanciával, Macbook Pro Retina 14" 2021, M1 32GB RAM/1TB SSD Space gray
- HP EliteBook x360 830 G8 Core i5 1145G7 2.6GHz/16GB RAM/512GB
- UF Lenovo Yoga 9i x360 Érintős Hajtogatós Laptop Tab 14" -60% i7-1360P 16/1TB Iris Xe 2,8K OLED 90Hz
- Lenovo Yoga 9i x360 Érintős Hajtogatós Laptop Tab 14" -60% i7-1260P 16/512 Iris Xe 2,8K OLED 90Hz
- Új DELL Inspiron 16 Fémházas Multimédiás Laptop 16" -40% Ryzen 7 8840U 8mag 16/1TB FHD+ IPS
- Intel X540-T2 dual-port 10GbE RJ45 hálózati vezérlő (10Gbit, 2 port, áfás számla, garancia)
- Creative Sound BlasterX G5 (70SB170000000) (Sound Blaster) (DAC)
- ÁRGARANCIA!Épített KomPhone i5 10600KF 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
- HATALMAS AKCIÓK / MICROSOFT WINDOWS 10,11 / OFFICE 16,19,21,24 / VÍRUS,VPN VÉDELEM / SZÁMLA / 0-24
- HGST HUH721010AL5200 10TB 7.2k SAS HDD, DELL branded, nettó 38000Ft + ÁFA, 1 év garancia
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest