Tomb feltoltes feltetelekkel

Címkék
Tomb feltoltes feltetelekkel
2014-05-05T19:06:55+02:00
2014-05-05T19:43:38+02:00
2022-08-08T20:05:32+02:00
Jhanee
Adott egy 150 elemű tömb 'D' -től 's' -ig kell feltölteni a tombot az adott feltételekkel:

a tomb elemeinek a száma osztható legyen 3-al de 7-el nem
a tomb elemeinek az 5-ik bitjén bizotsan 1-es legyen
és 'D'- től indulva toltsuk fel újra a tombot amíg az megnem telik

itt tartok vele:

int main() { int t[150],i,szam; for(i=0,szam='s'; i<150; szam--) { if((szam>='D' && szam<='s') &&(((szam%3)==0) && (szam%7)) && ((szam&0b00100000)==0b00100000)) { t[i]=szam; } i++; } return 0; }


Kérdés, hogy birom azt megoldani hogy a feltételek alapján egymás után töltse fel újra tömböt 'D'-től és a feltételeknek megfelelő elemek között ne legyen található memóriaszemét, mert ebben a formában amelyek nem feleltek meg azoknak kihagyja a helyét?
Mutasd a teljes hozzászólást!
else ágba 0-val töltöd fel őket.

b. megoldás:
ha nem felelt meg, nem lépteted az i-t;
Azaz az if--en belülre helyezed az i léptetését.

Nem ugyanazt csinálja a 2 megoldás, de nem tudom, hog yneked melyikre van szükséged. Azt majd megszülöd :)
Mutasd a teljes hozzászólást!

  • a feladatkiírás szerint nem 'D'-től kezdve kellene feltölteni?

    azaz nem a D, E, F, G, .... q, r, s karaktereken kellene végigmenned, majd, ha elérted az s-t, akkor újra kezdeni?

    szerintem szemléletesebb, ha a for helyett while ciklust használnál (bár C esetén ennek "nincs" jelentősége), és akkor lépteted az indexet, ha volt feltöltés, azaz az adott feltételnek megfelelt az "aktuális" karakter,
    az aktuális karaktert meg mindig lépteted, és, ha elérte az s-t, akkor persze újrakezded a D-től,

    "pszeudókód" (hogy ne copy/paste legyen):
    N = tömb_mérete első_karakter = 'D' utolsó_karakter = 's' c = első_karakter i = 0 amíg (i < N) { ha (3 osztja a c-t) és (7 nem osztja a c-t) és (c ötödik bitje 1-es) { tömb[i] = c növeljük i-t } ha (c egyenlő az utolsó_karakterrel) c = első_karakter máskülönben növeljük c-t }


    szerkesztés: feltételeztem, hogy nem lesz végtelen ciklus, azaz a 'D'..'s' intervallumnak legalább egy elemére igaz a feltétel,
    Mutasd a teljes hozzászólást!
  • Nem nagyon értelmes a feladat, az a gond... ez pl mi a csodát jelent: "a tomb elemeinek a száma osztható legyen 3-al de 7-el nem" -- a 150 osztható 3-mal, de nem osztható 7-tel (ha nem gond, hogy az eszközhatározót a hagyományos helyesírással jelölöm), ehhez nem kell semmit csinálnod.
    Mutasd a teljes hozzászólást!
Címkék
abcd