Hirdetés
- Brogyi: CTEK akkumulátor töltő és másolatai
- eBay-es kütyük kis pénzért
- weiss: Lakodalom van a mi utcánkban...
- Luck Dragon: Asszociációs játék. :)
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- laskr99: DFI és DFI Lanparty gyűjteményem
- sh4d0w: Kalózkodás. Kalózkodás?
- Gurulunk, WAZE?!
- bitpork: 2025, zárás
Új hozzászólás Aktív témák
-
Jester01
veterán
Valószínűleg nem nullázod az átvitelt a kivonás előtt. Nekem működik.
-
vanek
tag
Meg is érkeztem..
a problémám a következő lenne,
az eredményt az s1 be szeretném beletenni, mivel majd egy while ciklussal addig kell összeadogatnom a számokat, amíg nem lesz a műveleti jel '='for(c=0; c<=a; c++)
{
osszeg[a-c]=((s1[a-c]-s2[b-c])+10)%10-g;
if((s1[a-c]-s2[b-c])+s2[b-c]<0)
{
g=1;
}else{
g=0;
}
}ha jól sejtem, akkor az if részben már a két szám eredményeképpen kapott számból vonja ki az aktuális s2-t, de miért nem jó, ha még hozzáadom az s2-őt? Akkor az eredeti számot kapom nem?:\ de még sem akar működni..
ugyan ilyen gondom van az összeadásnál is..
-
kingabo
őstag
Vegyük a következő esetet: s1[a-0] = 9, s2[b-0] = 8, ekkor osszeg[a-0]=s1[a-0]+s2[b-0]+g; az osszeg[a] helyére 17-et ír, nem pedig 7-et. Nálad a tizesek helyén van a 4 az egyesek helyén a 11, ezért lett 411.(ha teszel egy szóközt a jegyek kiíratása közé, úgy könnyebb észrevenni) Megoldás: az osszeg[a-.. jobb oldalának vedd a 10-el vett maradékát.
-
kingabo
őstag
Nos, mivel stringként olvasol be a file-ból, ezért a tömb elemek nem a számokat, hanem azok ascii kódját tartalmazzák. Pl a 0 helyett 48-at. Tehát ha a szám kellene, nem a kódja, akkor minden karakterből le kell vonni 48-at. s1[i] -= 48; (lehet van szebb megoldás is, de most nem jut eszembe.
ui: 5 percig tudod szerkeszteni a hsz-ed.

szerk: az atoi pont erre való.
-
kingabo
őstag
Huh, 1000 éve nem olvastam file-ból c-ben.
, talán a legegyszerűbb az lenne, ha írnál egy fv-t ami az ascii-ben tárolt számot átalakítja, annak a valódi értékére. Ehhez a 0 vagy az 1 (nemtom melyik van elől) ascii kódját kellene minden számjegynél levonni.
"átvitelnél a túlcsordulásra gondolsz?"
Igen.Feladat: sztem jó az irány, az előjelezést meg nem olyan nehéz megoldani.
-
kingabo
őstag
osszeg[a-i]=s1[a-i]+s2[b-i];, ha jól sejtem itt a számok ASCII kódját adod össze, ezért van gond a kiíratással. Megoldás: a beolvasásban ne stringként olvas be, hanem számként. Hiba még, hogy pl 8+9 esetén a "túlcsordulást" nem viszed tovább.
Szerintem ha megosztod a feladatot lehet, hogy a mostani elképzelésednél könnyebbet tudnánk kitalálni.
szerk: lemaradtam.
Ja és igen a szám hossz... -
Jester01
veterán
Ezzel több baj is van.
Ha egyáltalán nem működik az azért lehet mert nem jó a bemenet. Ha tényleg "45+15" akkor azt egyben megeszi az első scanf. Kell közéjük valami elválasztó whitespace, például "45 + 15". Ezután az lesz a következő baj, hogy simán az ascii kódot nem lehet összeadni, le kell vonni belőle 0 ascii kódját. Ha ez is megvan akkor még az átvitel (carry) problémáját is meg kell oldani. Az eredmény hosszával is gondok vannak, te egyszerűen az első szám hosszát használod ami nem (mindig) jó. -
Becopyznád a jelenlegi teljes programodat?
Mert en most megneztem az eredeti kododdal, meg a javitasokkal is, de mar a linkelt pdf-ben szereplo peldat hasznalva is helytelen eredmenyt ad...
Meg milyen kornyezetben probaltad te ezt?
En egy kabinetes gepen futtattam s ott adott vissza rosszat s ugye a Biro is ugyanilyen kornyezetben futtattja majd.Szerk: Latom Jester01 megelozott.

-
Jester01
veterán
Ez nagyon kreatívan megírt program. Ha ember bírálná el, nem sok jó származna belőle.
Mindenesetre a baj az fgets körül lehet, az ugyanis eltárolja a sorvég jelet is. Ezáltal egyfelől csak akkor találod meg a dolgokat ha az éppen a sor végén van, másfelől pedig a 255 hosszú sorokon elcsúszik a feldolgozás (és onnan már nem is jön helyre). Jelen formájában a feladatkiírásban lévő példára sem működik, nem értem ezt hogy nem vetted észre.
-
WonderCSabo
félisten
Megírtam egy picit más megközelítéssel. Nem lehet, hogy a mainben rossz vmi? Én most már fáradt vagyok elemezni ezt a bonyolult problémát.

int vizsgal(char s1[], char d1[])
{
int i, j;
int b = 1;
for(i = 0; i<= strlen(s1)-strlen(d1); ++i)
{
for(j=0; j < strlen(d1); ++j)
{
if(s1[i+j-1] != d1[j])
{
b = 0;
break;
}
else
b = 1;
}
if(b)
return i-1;
}
return i-1;
} -
WonderCSabo
félisten
Válaszoltam a C++ topikban, de itt folytassuk.
Ú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!
- Milyen RAM-ot vegyek?
- Xiaomi 15 - kicsi telefon nagy energiával
- Nintendo Switch 2
- NASCAR
- Brogyi: CTEK akkumulátor töltő és másolatai
- Android alkalmazások - szoftver kibeszélő topik
- eBay-es kütyük kis pénzért
- Háztartási gépek
- Kerékpárosok, bringások ide!
- Vezeték nélküli fejhallgatók
- További aktív témák...
- -ÚJ,2 ÉV GAR- DDR5 GAMER PC: RYZEN 7 8700F/9700X/9800X3D +RX 6600/6700XT +16-64GB DDR5! SZÁMLA!
- Dell Latitude 7430 x360 Ütésálló Érintős Hajtogatós Profi Ultrabook 14" -60% i7-1265U 16/512 IRIS Xe
- HP E24m G4 Monitor FHD IPS webkamerával, Windows Hello-támogatással
- Lenovo ThinkPad T14 Gen 5 Ultra-I7/16GB/512SSD/FHD/garancia!
- Lenovo ThinkPad X1 Carbon 9th i7-1165G7/16GB/512/FHD/Magyar
- Eredeti Lenovo 65W USB Type C notebook töltő
- LG 49SE3D-B 49" FullHD LED Monitor
- 14" Dell Latitude laptopok: 5400, 5480, 5490, 7480, E6410, E6440, E5450 / SZÁMLA + GARANCIA
- BESZÁMÍTÁS! Asus X470 R9 5900X 32GB DDR4 1TB SSD RTX 3070 Ti 8GB Zalman Z1 PLUS A-Data 750W
- LG 45GR95QE - 45" Ívelt OLED / 2K WQHD / 240Hz 0.03ms / NVIDIA G-Sync / FreeSync Premium / HDMI 2.1
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: Laptopműhely Bt.
Város: Budapest


, talán a legegyszerűbb az lenne, ha írnál egy fv-t ami az ascii-ben tárolt számot átalakítja, annak a valódi értékére. Ehhez a 0 vagy az 1 (nemtom melyik van elől) ascii kódját kellene minden számjegynél levonni.
Ja és igen a szám hossz...
szerint 1 kell.


