- Soundbar, soundplate, hangprojektor
- VR topik (Oculus Rift, stb.)
- Canon MILC: EOS R és M topik
- AMD GPU-k jövője - amit tudni vélünk
- Vezeték nélküli fejhallgatók
- Azonnali informatikai kérdések órája
- RAM topik
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- NVIDIA GeForce RTX 4060 / 4070 S/Ti/TiS (AD104/103)
- CES 2025: Naya, az igazán egyedi billentyűzet
Új hozzászólás Aktív témák
-
Jester01
veterán
válasz
hoffman_ #4100 üzenetére
A maszkolás az bináris dolog, akkor jó ha bitekkel dolgozol. Jelen esetben az alsó két bitet kell leválasztani erre az & 3 az pont jó is, vizsgálni viszont az 10 kombinációt kell aminek az értéke 2.
A helyiértékes dolog ennek a tízes megfelelője és arra az osztás művelet jó. Ugye az egyesek száma az simán 10-el vett maradék, tehát x % 10. A tízesek száma ugyanez csak még egy tízzel való osztás is van benne: (x / 10) % 10. A százas helyiértéknél már 100-al kell osztani és így tovább.
-
hoffman_
nagyúr
válasz
hoffman_ #4097 üzenetére
senki többet harmadszor?
nagyon fontos lenne.
illetve még egy kérdés. írtam én is valamit egy feladatra, természetesen nem jó, és nem tudom, hogy miért. valaki meg tudja javítani esetleg?
feladat: bekérni s1 tömbbe 10 karaktert úgy, hogy ascii kód szerint a 1-es és 100-as helyiértéken csak 6 vagy 7 állhat. ezután s2-be másolni az elemeket(ha van), amelyeknél a 10-es helyiértéken lévő szám 0. bitje 0, az 1. bitje pedig 1, utána az első 4 elem minimumát kell megadni. mindent függvénnyel.
- min függvény ebben még nincs is benne, de így se ok
void beker(unsigned char *s1);
int masol(unsigned char *s1, unsigned char *s2);
int main()
{
unsigned char s1[10], s2[10];
beker(s1);
masol(s1, s2);
return 0;
}
void beker(unsigned char *s1)
{
int i=0;
unsigned int temp;
/*while(i<10)
{
scanf("%d", temp);
if((temp[i] &0x3 == 0x6) || (temp[i] &0x3 == 0x7)) s1[i]=temp;
i++;
}*/
while(i<10)
{
scanf("%d", temp);
if((temp &0x3 == 0x6) || (temp &0x3 == 0x7)) s1[i]=temp;
else s1[i]=0;
i++;
}
}
int masol(unsigned char *s1, unsigned char *s2)
{
int i=0, j=0;
while(i<10) s2[i++]=0;
i=0;
while(i<10)
{
if(s1[i] &0x5 == 0x1) s2[j++]=s1[i];
i++;
printf("%d, ", s2);
}
} -
bucsupeti
senior tag
válasz
hoffman_ #4043 üzenetére
100-tól csökkenve 100 db páratlan szám csak úgy van, ha negatív számokat is veszünk, vagy ha egy páratlan számot többször is értékül adunk. Van valami pontosítás a feladattal kapcsolatban ezen a téren?
Mert ha nincs akkor én úgy csinálnám hogy 99-től visszafelé indítok egy ciklust (for), úgy hogy kettesével lépked visszafelé. Tárolnám a számot az aktuális és az aktuális+1 indexű elemben.
Ezzel kész is a feltöltés csökkenő sorrendben.
Ezután egy újabb ciklusban feldolgoznám a tömböt. A ciklus végigmegy a tömbön és összeadogatom két változóban az elemeket. Egyikben a páros indexűeket, másikban a páratlan indexűeket. (Vedd észre, hogy mivel két egyforma elem követi egymást, ezért az összeg pontosan ugyan annyi lesz a végén mindkét változóban, mivel a tömb valahogy így néz ki: 99,99,97,97,95,95...1,1)
Ezután kiírom a páros indexűek összegét, majd a páratlan indexűek összegét elosztom 50-el és azt írom ki (ez lesz az átlag).Ne erőltesd bele egy ciklusba az egészet (persze úgy is meg lehet csinálni).
Számomra a kérdés a tömb feltöltésének pontos szabálya.
Ú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!
- GYÖNYÖRŰ iPhone 12 Pro Max 256GB Graphite -1 ÉV GARANCIA - Kártyafüggetlen, MS2927, 100% Akkumulátor
- ZTE Blade A31 Plus 32GB, Kártyafüggetlen, 1 Év Garanciával
- Seagate Exos X18 16TB SAS merevlemez
- Azonnali készpénzes AMD Ryzen 1xxx 2xxx 3xxx 5xxx processzor felvásárlás személyesen / csomagküldés
- Bezámítás! Lenovo Legion 5 17ACH6H Gamer notebook - R7 5800H 16GB DDR4 512GB SSD RTX 3060 6GB WIN11
Állásajánlatok
Cég: FOTC
Város: Budapest