Hogy kell az alábbi programozás feladatokat megoldani?
C-ben szeretném ezeket megcsinálni(külön feladatok):
Van egy száz elemű tömb és ennek szerentém a második legkisebb/nagyobb elemét.
Megkereseni "a” és „b” változóban található azon
számjegyek darabszámát, amelyeknél a 1. biten 1-es érték van!
és szkriptben szóközt számlálni. Köszi
"Van egy száz elemű tömb és ennek szerentém a második legkisebb/nagyobb elemét. "
2. legkisebb elem: 2 részproblémára lehet szétszedni
a:legkisebb elem keresése
b:k-nál kisebb elem keresése
A pszeudokódot írom:
//legkisebb elem keresése
min:=supremum;
for i in tomb{
if tomb[i]<min
min=tomb[i]
}
//2.legkisebb elem keresése
min2=min
for i in tomb{
if tomb[i]<min2
min2=tomb[i]
}
if min2<min{print "2. legkisebb elem,min2} else
{print "nincs 2.legkisebb elem}
@20:44
Sorry, hülyeséget írtam.
2 részrobléma:
a: legkisebb elem keresése
b: k-nál nagyobb, legkisebb elem keresése
a: legkisebb elem keresése ez ok (jól írtam)
b: k-nál nagyobb, legkisebb elem keresése
b: részprobléma (pszeudokód)
min2=supremum
for i in tomb{
if tomb[i]<min2 and tomb[i]>min
min2=tomb[i]
}
if min<min2{print "2. legkisebb elem",min2} else
{print "nincs 2.legkisebb elem"}
"Megkereseni "a” és „b” változóban található azon
számjegyek darabszámát, amelyeknél a 1. biten 1-es érték van!"
Az "a" és "b" egy-egy int/char vagy tömb? Byte-onként kell összeszámolni vagy ...?
Mindenesetre bit mask-ot kell készíteni mert közvetlenül nem érheted el a bitketet.
"és szkriptben szóközt számlálni. Köszi"
Milyen skript-be?
köszi a válaszokat, segítettek
végül úgy próbálkoztam, hogy megkerestem min-t és utána mégegyszer végigzongoráztam a tömbön avval a feltétellel, hogy akkor adjon min2-nek értéket: if(tomb[x]<min2 && tomb[x]!=min). Ez jónak tűnik.
Aztán az eredeti pld az, hogy a=123, b=456 és c-be be kell írni a két változóban 5. biten 1-esek darabszámát és csak operátorokkal lehet. Erre ez jutott eszembe(az 5. bitet ugye jobbról kell szémolni?) d=16 c=(a&d+b&d)/16;
Lehet hogy hülyeség, de jobb egyenlőre nem jutott eszembe.
Na hát ennyire vagyok amatőr, hogy nem skript, hanem sztringről van szó. :D Mondjuk str []="itt egy szoveg" -ből kellene megszánolbi a szóközök számát.
..."megkerestem min-t és utána mégegyszer végigzongoráztam a tömbön avval a feltétellel, hogy akkor adjon min2-nek értéket: if(tomb[x]<min2 && tomb[x]!=min). Ez jónak tűnik."
Végül is jó(megfelelően működik így is), de if(tomb[x]<min2 && tomb[x]>min) intuitívabban tükrözi a gondolatmenetet, hogy:
a: legkisebb elem keresése
b: k-nál nagyobb, legkisebb elem keresése, azaz k (küszöb érték) függvényében a legkisebb elem keresése
itt speciálisan k=lekisebb elem, ezzel az általános sémával egy az egyben meglehetne írni a 3.-ik legkisebb érték meghatározását.
"Megkereseni "a” és „b” változóban található azon
számjegyek darabszámát, amelyeknél a 1. biten 1-es érték van!"
Ezt úgy értelmeztem először, hogy ... amelyeknél a első biten 1-es érték van. (Végül is ez van odaírva)
Akkor az lehet hogy megszámolni "a" és "b" változóban lévő 1-es értékű biteket.
"Erre ez jutott eszembe(az 5. bitet ugye jobbról kell szémolni?) d=16 c=(a&d+b&d)/16;"
Kapiskálod, de nem így érdemes számolni. Először is elég külön-külön összeszámolni.
Lehet helyi érték szerint számolni, lehet fizikai tárolás szerint, lehet balról, lehet jobbról.
Legegyszerűbb és legkézenfekvőbb helyi érték szerint. Végül is bármilyen sorrendbe számolod, a számold darabszám ugyanannyi.
A te példád szerint, helyi érték szerint jobbról (de fizikailag nem biztos hogy jobbról, de ne menjünk bele) d=32 (2^5=32) 0-tól kezdődik a sorszámozás.
Megnézed hány bites a változó mérete, az hogy hány bájtos a sizeof operátor tud mesélni.
Egy for ciklussal előállítasz olyan értékeket melynek csak a 0.-ik majd csak az 1.-ik majd csak a 2.-ik stb. bitje 1-es ezt bitenkénti éseled "&" operátorral ha az így kapott érték nem 0 akkor 1-es van ott különben 0. előállítani ilyen értékeket úgy lehet hogy az 1-et shift-eled balra "<<" operátorral.
"Na hát ennyire vagyok amatőr, hogy nem skript, hanem sztringről van szó. :D Mondjuk str []="itt egy szoveg" -ből kellene megszánolbi a szóközök számát."
A string egy tömb tulajdonképpen,ezen a tömbön kell végigmenni és számolni a szóközöket.
Nem is nyomtam válasz küldését és elküldte ... be sem felyeztem
Dehát a string egy tömb tulajdonképpen,ezen a tömbön kell végigmenni és számolni a szóközöket, 0-tól kell számolni addig míg kisebb mint strlen(str) (a példéd szerint str)
strlen a string hossza, avagy az utolsó karakter utáni index vagyis a végjel indexe...
includeolni kell a string.h-t
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!