- Motorola Edge 40 neo - színre és formára
- Milyen okostelefont vegyek?
- iPhone topik
- DIGI Mobil
- Motorola Edge 40 - jó bőr
- Garmin Forerunner 255 Music - nem csak futóknak
- Xiaomi Smart Band 8 - folyamatosan
- Itt az első kép a 2024-es Nokia 3210-ről
- Google Pixel 8 Pro - mestersége(s) az intelligencia
- Redmi Note 10 Pro - majdnem minden stimmel
Hirdetés
-
Az Apple iPadOS-t is megrendszabályozza az EU
it Az EB közölte: az Apple iPad táblagépekre írt iPadOS rendszere is kapuőrnek számít, az üzleti felhasználókra gyakorolt fontossága miatt.
-
Premier előzetesen a Gray Zone Warfare
gp A mai naptól hivatalosan is elrajtol a játék korai kiadása PC-n.
-
Kicsit extrémre sikerült a Hyte belépője a készre szerelt vízhűtések világába
ph A cég megoldása centralizált vezérelhetőséggel, masszív radiátorral és robusztus ventilátorokkal igyekszik vásárlásra csábítani.
Új hozzászólás Aktív témák
-
Jester01
veterán
4) például bevezetsz index, max és lépés változókat. Az index mutatja, hol állsz az abcben, a max, hogy meddig, az irány pedig, hogy éppen merre (le/fel=-1/+1). Csinálsz egy külső ciklust, ami a kívánt kiírandó karakterszámig fut. A cikluson belül kiírod az aktuális karaktert, majd a lépés hozzáadásával mész a következőre. Ellenőrzöd nem ütköztél-e az intervallum alsó vagy felső határába és ha igen, akkor a lépést megfordítod és az aktuális indexet korrigálod. A betűk kiírásához felhasználhatod, hogy az ascii kód éppen az angol abc szerint van sorban, vagy alkalmazhatsz egy konstans stringet amiből kinézed a betűket.
5) ezzel nem tudom mi a probléma, elég szájbarágósan le van írva. Csinálsz egy függvényt, ami ellenőrzi, hogy a szám prím-e. Erre az egyszerű favágó megoldás gondolom teljesen jó lesz, miszerint végignézed osztható-e valamivel. A főprogram pedig a feladatkiírásnak megfelelően jár el.
Jester
-
Gyuri16
senior tag
-
Gyuri16
senior tag
na szoval, nezzuk amit te irtal:
while (szam != 0 && mertekegyseg != '0')
eloszoris: while ciklus addig fut, amig a feltetel igaz.
szam != 0 && mertekegyseg != '0'
ez akkor igaz, ha mindket resz igaz, tehat a szam nem 0, es a mertekegyseg se 0. => ha pl a szam == 0 es a mertekegyseg != 0 (az a pelda amit irtal), akkor ott false && true lesz, ami false, tehat a ciklus kilepez -> while (szam != 0 && mertekegyseg != '0') magyarul: addig fusson a ciklus, amig egyik se nulla
amit te akarsz: nem (szam= 0 es mertekegyseg= 0), ami leirva:
!( szam == 0 && mertekegyseg == 0)
ebbol De Morgan azonossagokkal megkapod amit irtam vagyokkal:
szam != 0 || mertekegyseg != 0
ami szavakban: addig csinald a ciklust amig legalabb az egyik nem 0Nem vagyok egoista, csak uborkagyalu!
-
blaces
tag
Amúgy ez nem lenne jobb?
while (!(szam && mertekegyseg))
Szerintem erre akart gondolni haver...
Ilyen példát láttam könyvben és én is alkalmaztam egyszerű proginál:
while (a%2 ==0) az ekvivalens ezzel while (!(a%2)) ---> ugyanis !() ilyenkor a ! jel a zárójelben lévő kifejezésnek 0-t ad eredményül ebben a példában. -
Jester01
veterán
Hát mert nem úgy csináltad, ahogy mondtam
Egy ciklus kell összesen, nem 3. Viszont kell egy változó ami mutatja éppen le vagy fel mész.
Valahogy így:int lepes = 1;
int index = 0;
for(i = 0; i < max - 1; i++)
{
printf("%c", 'a' + index);
index += lepes;
if (index >= visszaford)
{
index = visszaford - 2; /* a minta szerint a felso fordulopontot csak egyszer irjuk ki */
lepes = -1;
}
if (index < 0) {
index = 0; /*a minta szerint az also fordulopontot ketszer irjuk ki */
lepes = 1;
}
}Jester
-
[HUN]Zolee
senior tag
Hát fapados megoldásként, feltolod az adott sort egy tömbbe, és elkezded olvasni az elejéről és figyeled hogy mikor jön "B" ha talált, akkor megnézed hogy az utána lévő 2 karakter "U" és "G" ha igen akkor a ciklusváltozódon léptetsz hogy pont kihagyja , ha nem akkor meg nem csinálsz semmit és kiírod .
''<[HUN]DrH>valaki mondjon egy tuningolos programot a mivel kocsis képeket tudok tuningoloni.'' https://ferromag.aranyoldalak.hu/
-
amargo
addikt
Na de ha megtaláltad, akkor miért nem elég neked csak egy példa a brute force algo
Itt van egy olyan rész, hogy The C code:void BF(char *x, int m, char *y, int n) {
int i, j;
/* Searching */
for (j = 0; j <= n - m; ++j) {
for (i = 0; i < m && x[i] == y[i + j]; ++i);
if (i >= m)
OUTPUT(j);
}
}Ezt most betudom annak, hogy fáradt és megszeppent vagy, én is szoktam ilyen lenni. De legközelebb, ha konkrét linkeket kapsz, nézd is meg.
“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
-
Jester01
veterán
Azért kínálgatják a wchar.h-t, hogy az ékezetes karaktereket helyesen tudd kezelni. Éppen csak azt felejtették el megmondani, hogy milyen kódolásban van a fájl.
Igen, ha mondatonként olvasol be, az jó megoldás lehet. Figyelned kell arra, hogy esetleg nem fér bele a pufferbe, ezért dinamikusan kell méretezni. Vagy, ha nagyon csúnyán akarod, akkor egyszerre be is olvashatod az egész fájlt Mindenesetre azt kellene tudni, mi határoz meg egy mondatot - erre jó lenne ha a specifikáció kitért volna. Márcsak azért is, mert bizonyos esetkben igen nehéz eldönteni. Például az Apám neve id. Kiss János. az hány mondat is? Ennek hiányában egyszerű szabályként például azt lehet használni, hogy a mondat vége ott van ahol egy vagy több ., ! vagy ? áll ami után a következő betű nagy. De ezt mindenképp rögzíteni kell a dokumentációban. Összességében ez egy igen rosszul specifikált probléma, szerintem ne vállald el
A másik kérdésre: valamilyen alkalmas adatszerkezetben nyilván kell tartani a szavakat. Ahogy olvasod a bemenetet, a megfelelő szó előfordulásainak számát növeled. Tipikusan erre a hash tábla a célszerű, de mivel C-ben ilyen nincs, ezért például egy láncolt lista vagy egy bináris fa is megteszi. MOD: persze ilyenek sincsenek, de könnyebb csinálni
[ Szerkesztve ]
Jester
-
Jester01
veterán
Ja, ha soronként egy mondat van az jó.
Tulajdonképpen átmásolni felesleges, elég pozíció alapján nézegetni a mondatot. Tehát nyilvántartod a szó elejét és a végét és az alapján ellenőrzöl. Valami ilyesmivel:
int start = 0;
int end;
int found = 0;
while(next_word(&start, &end))
{
if (end - start >= 5 && is_palindrome(start, end))
{
found = 1;
break;
}
}Értelemszerűen a next_word és is_palindrome függvényeket neked kell megírni. Az előbbi sorban visszaadja a szavak kezdő és végpozícióját, az utóbbi pedig megnézi, hogy az adott szó palindróma-e.
Jester
-
Jester01
veterán
A másoláshoz eleve tudnod kellene hol kezdődik és hol végződik. És ha azt tudod, akkor már nem is kell átmásolni
int next_word(const wchar_t** start, const wchar_t** end)
{
/* az előző szó végétől indulunk */
*start = *end;
/* keressük meg a következő szó elejét */
while(**start != 0 && !iswalnum(**start)) *start += 1;
/* ha a string vége, akkor kész */
if (**start == 0) return 0;
/* keressük meg a szó végét */
*end = *start + 1;
while(iswalnum(**end)) *end += 1;
return 1;
}Az előző példához képest ez most pointeres, de ugyanaz a logika.
Jester
Ú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!
- Elemlámpa, zseblámpa
- Escape from Tarkov
- Kerékpársportok
- EAFC 24
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- exHWSW - Értünk mindenhez IS
- Kihívás a középkategóriában: teszten a Radeon RX 7600 XT
- Xbox Series X|S
- Témázgatunk, témázgatunk!? ... avagy mutasd az Android homescreened!
- Autós topik
- További aktív témák...