Hirdetés
- D1Rect: Nagy "hülyétkapokazapróktól" topik
 - urandom0: Új kedvenc asztali környezetem, az LXQt
 - gban: Ingyen kellene, de tegnapra
 - Luck Dragon: Asszociációs játék. :)
 - GoodSpeed: Pillangóhatás: F billentyű meghibásodása -új gamer számítógépasztal
 - Brogyi: CTEK akkumulátor töltő és másolatai
 - LordAthis: RETRÓnia - RETRÓ Mánia - Úton van hozzám egy csodás történelmi darab!
 - bambano: Bambanő háza tája
 - GoodSpeed: 24 éves a Windows XP! Nézzen ki úgy a Windows 11 mint az XP?
 - droidic: Windows 11 önállóság nélküli világ: a kontroll új korszaka
 
Új hozzászólás Aktív témák
- 
			
			
válasz
							
							
								bandi0000
							
							
								#3499
							
							üzenetére
						És érted is?

Vazz, csak most látom, hogy beleszkerkesztettem a kód végébe (return elé) a kommentet...

És még egy plusz komment (tévedés az eredeti kommentben): nem 16384 a max, a 65535-ig menő számokon működik helyesen a kód (az annál nagyobb számokon az 15. feletti biteket nem írja ki)

1111 | 1111 | 1111 | 1111 = 65 535 - 
			
			
válasz
							
							
								bandi0000
							
							
								#3494
							
							üzenetére
						12-nél a 1100 helyes (1*8+1*4+0*2+0*1)
Vagy fordítva rakod be a tömbbe (végétől kezdve és a végére teszel egy '\0'-t (string vége karakter C-ben) és onnan iroatod ki ahova visszafele eljutottál (ezt csinálja az én példám). Vagy feltöltöd a tömböt rendesen és kiiratáskor címezed meg a végétől és egy csökkenő ciklusban egyesével kiírod a számokat (de ugye csak annyit, amennyit beleraktál).
Harmadik megoldás - valahogy így (fordító és ellenőrzés nélkül):
bitmaszk és bitshift
char* binaryConv(int szam){
char* binary = "0000|0000|0000|0000";
int bitmask = 0x4000; //16 384
int counter = 0;
while (bitmask > 0){
if (szam & bitmask) binary[counter] = '1'; // ha az adott bit 1, akkor a stringbe is azt helyettesítjük
counter++;
if (counter%4 == 0) counter++; //átléptetni az elválaszókat
bitmask = bitmask >> 1; //bitmaszkot eggyel jobbra tolni
}1) Csak 4 jegyű számokig működik (azaz pontosabban 16384-ig)
2) Amit visszaad ki lehet irattatni printf-fel...
return binary;
} - 
			
			
 - 
			
			
						bandi0000
nagyúr
while(a==0)
{
z=x%2;
if(z==1)
{
for(i=0;i<14;i++)
{
tmb[i]=1;
}
}
if(z==0)
{
for(i=0;i<14;i++)
{
tmb[i]=0;
}
}
if(x==0)
{
a=1;
}
}
én meg hirtelen ezt találtam ki ez hülyeség mi?
vagyis én ug ygondoltam hogy a while addig ismételje amig nem lesz az x=0, és akkor a while-ban átírja az a-t 1 re és elvileg meg szakad a ciklus nem? - 
			
			
						kispx
addikt
 - 
			
			
						bandi0000
nagyúr
Érteni értem de azt hogy tudom leírni hogy maradék lett e vagy sem?
 - 
			
			
						kispx
addikt
válasz
							
							
								bandi0000
							
							
								#3479
							
							üzenetére
						Akkor kezdjük az elejétől.
"bekérek egy legfeljebb 4 jegyű számot"
A legnagyobb 4 jegyű szám 9999, ami binárisan 10011100001111 (14 karakter ha jól számolom). Tehát lefoglalsz egy 14 elemű karaktertömböt, ebbe rakod a végeredményt.Az eljárás: (úgy mint papíron)
bekéred a számod (legyen x)x-et elosztod kettővel. A maradékot (0 vagy 1-et beleírod a karaktertömbbe)
A hányadost megint elosztod kettővel és a maradékot megint beleírod a karaktertömbbe.
.
.
.
Egészen addig csinálod míg a hányados nulla nem lesz. Végül a karaktertömböt fordítva írod ki.Tehát példával illusztrálva:
x = 5
5 / 2 == 2 (maradék 1)
2 / 2 == 1 (maradék 0)
1 / 2 == 0 (maradék 1)101
 - 
			
			
						bandi0000
nagyúr
válasz
							
							
								kingabo
							
							
								#3477
							
							üzenetére
						köszönöm bár már nem kell de ha akarsz segíteni van egy másik feladat aminek az a lényege hogy most bekérek egy legfeljebb 4 jegyű számot és azt átírja 2-es számrendszerbelibe
tehát pl beírok egy 10-est akkor ő kidobja hogy 1010
Van egy megoldási lehetőség a tegnapihoz hasonlóan hogy kiirom hogy ha 9000-8000-7000 stb mit kell kiirnia és ugyan úgy kivonom belőle, de biztos van egyszerűbb megoldás is mert ennek az a hibája hogy ki kéne számolnom hogy a 6000 pl hogy néz ki 2 es számrendszerben és igy tovább
a tanár azt mondta hogy bontsuk fel asszem hexadecimálisnak hívják amikor a kettes számrendszert felosztjuk 4-sével tehát: pl 011001010101 ez igy nézne ki : 0110|0101|0101|
és akkor az x számot felbontom számjegyekre és megvizsgálom hogy ha az 1-ő számjegy 9 akkor irja ki a kettes számrendszerbeli átváltását a 9-nek tehát akkor elsőnek kiirná hogy 1001 és akkor vizsgálja a 2.3.4. elemét a számnak de szerintem ez nem jó így - 
			
			
						kingabo
őstag
válasz
							
							
								bandi0000
							
							
								#3471
							
							üzenetére
						Egy alternatív megoldás az eredeti 5letedet is felhasználva: csinálsz 3db 10 elemű tömböt feltöltöd őket, hogy a százasok, tízesek, egyesek helyére mit kell írni, ha a tömbindex + 1 az érték. Ezután a szétbontott számokat a fenti tömbökben indexként használva összefüzöd a római számot.
 - 
			
			
						kispx
addikt
válasz
							
							
								bandi0000
							
							
								#3469
							
							üzenetére
						Na kerestem egy IDE-t a gépen. Elbeszéltünk egymás mellett
#include <stdio.h>
int main()
{
int x = 566;
printf("Szam = ");
scanf("%d", &x);
if(x>=1000)
{
printf("M");
x=x-1000;
}
while(x>900)
{
printf("CM");
x=x-900;
}
while (x >= 500)
{
printf("D");
x = x - 500;
}
while (x>=400)
{
printf("CD");
x=x-400;
}
while (x>=100)
{
printf("C");
x=x-100;
}
while (x>=90)
{
printf("XC");
x=x-90;
}
while (x>=50)
{
printf("L");
x=x-50;
}
while (x>=40)
{
printf("XL");
x=x-40;
}
while (x>=10)
{
printf("X");
x=x-10;
}
while (x>=9)
{
printf("IX");
x=x-9;
}
while (x>=5)
{
printf("V");
x=x-5;
}
while (x>=4)
{
printf("IV");
x=x-4;
}
while (x>0)
{
printf("I");
x = x - 1;
}
return 0;
}Nekem ez a 660-at jól írja ki.
MÁS:
A Qt Creator miért nem ír ki semmit sem debugolás alatt? Ha terminálból futtatom csak akkor ír ki valamit ez a program. - 
			
			
						bandi0000
nagyúr
tehát akkor mit kellene irni?
am meg még azt láttam hogy ha beírom h 566 akkor átmegy 500 ra jó a DC megy tovább 50 nél nagyobb a 66 igen és akkor beirja hogy LC holott a 60 LXamúgy van még 1 fajta ezt oszttársam csinálta ez igy jó vagy hülyeség?
int main(){
int k=0,j,h,a,sz1=0,sz2=0,sz3=0,sza1=0,sza2=0,sza3=0,I=1,II=2,III=3,IV=4,V=5,IX=9,X=10,XL=40,L=50,XC=90,C=100,CD=400,D=500,CM=900,M=1000;
printf("Adj meg egy szamot 1 es 1000 kozott:");
scanf("%d",&a);
sz1=a/100;
sz2=(a-sz1*100)/10;
sz3=((a-sz1*100)-sz2*10)/1;
printf("A Megadott szam a:%d\n",a);
printf("sz1:%d\n",sz1);
printf("zs2:%d\n",sz2);
printf("sz3:%d\n",sz3);
for (k=0;k<sz1;k++) printf("C");
for (j=0;j<sz2;j++) printf("X");
for (h=0;h<sz3;h++) printf("I");
system("pause");
//getchar();
} - 
			
			
						bandi0000
nagyúr
válasz
							
							
								sztanozs
							
							
								#3459
							
							üzenetére
						while(x>1000)
{
printf("M");
x=x-1000;
}
if(x>900)
{
printf("CM");
x=x-900;
}
if (x >= 500)
{
printf("DC");
x = x - 500;
}
if (x>=400)
{
printf("CD");
x=x-400;
}
while (x>=100)
{
printf("C");
x=x-100;
}
if (x>=90)
{
printf("XC");
x=x-90;
}
if (x>=50)
{
printf("LC");
x=x-50;
}
if (x>=40)
{
printf("XL");
x=x-40;
}
while (x>=10)
{
printf("X");
x=x-10;
}
if (x=9)
{
printf("IX");
x=x-9;
}
if (x>=5)
{
printf("VL");
x=x-5;
}
if (x=4)
{
printf("IV");
x=x-4;
}
if (x>0)
{
printf("I");
x = x - 1;
igy se jó ha segít akkor fel tudom rakni az egész programot DEV C be csinálom - 
			
			
						bandi0000
nagyúr
if(x>1000)
{
printf("M");
x=x-1000;
}
if(x>900)
{
printf("CM");
x=x-900;
}
if (x >= 500)
{
printf("DC");
x = x - 500;
}
if (x>400)
{
printf("CD");
x=x-400;
}
if (x>100)
{
printf("C");
x=x-100;
}
if (x>90)
{
printf("XC");
x=x-90;
}
if (x>50)
{
printf("LC");
x=x-50;
}
if (x>40)
{
printf("XL");
x=x-40;
}
if (x>10)
{
printf("X");
x=x-10;
}
if (x=9)
{
printf("IX");
x=x-9;
}
if (x>5)
{
printf("VL");
x=x-5;
}
if (x=4)
{
printf("IV");
x=x-4;
}
if (x>0)
{
printf("I");
}hát így nem jó...vagy mindegyik if hez oda kéne irni az =-őt is?
 - 
			
			
						bandi0000
nagyúr
válasz
							
							
								sztanozs
							
							
								#3453
							
							üzenetére
						if (x>400)
{
printf("CD");
x=x-400;
}
continue;így gondoltad vagy ne zárjam le az if-et csak a végén az összeset?
mert ebben az esetben ezt irja: continue statement not within a loop
vagy netán kell ennek egy függvény?Am bocs hogy ilyen értetlen vagyok de nem tanítják meg rendesen de elvárják hogy megcsináljuk amit pl elöbb leírtál hogy úgy irjam le nem láttam még olyat csak úgy tudom ahogy én csináltam sajnos...
 - 
			
			
						bandi0000
nagyúr
válasz
							
							
								sztanozs
							
							
								#3450
							
							üzenetére
						if(x>1000)
{
printf("M");
x=x-1000;
if (x > 500)
printf("DC");
x = x - 500;
if (x>400)
{
printf("CD");
x=x-400;
if (x>100)
{
printf("C");
x=x-100;
if (x>90)
{
printf("XC");
x=x-90;
if (x>50)
{
printf("LC");
x=x-50;
if (x>40)
{
printf("XL");
x=x-40;
if (x>10)
{
printf("X");
x=x-10;
if (x=9)
{
printf("IX");
x=x-9;
if (x>5)
{
printf("VL");
x=x-5;
if (x=4)
{
printf("IV");
x=x-4;
if (x>0)
{
printf("I");
x=x-0;
igy irtam igy gondoltad? - 
			
			
						kispx
addikt
válasz
							
							
								sztanozs
							
							
								#3447
							
							üzenetére
						Jogos, egy gyors wikipedia keresés alapján mondtam

És még egy kiegészítés, nem x>500 hanem x>=500
(#3446) Bobrooney
A WinForms-nak nincs magyar nyelvű irodalma. De tudtommal már nem fejlesztik tovább.(#3452) bandi0000
(#3447) sztanozs hozzászólásában szereplő számokat is tedd bele, mert a wikiből nem jól mondtam én sem. És vannak olyan számok pl I ami háromszor is előfordulhatnak, szóval azokat rakd bele egy ciklusba. - 
			
			
válasz
							
							
								bandi0000
							
							
								#3449
							
							üzenetére
						Nálam is >= a >
pszeudo:while (num>0){
if num >=900 { s+="CM"; num -=900;}
else if num >=500 { s+="D"; num -=500;}
else if num >= 400 { s+="CD"; num -=400;}
else if num >= 100 { s+="C"; num -=100;}
else if num >= 90 { s+="XC"; num -=90;}
else if num >= 50 { s+="L"; num -=50;}
else if num >= 40 { s+="XL"; num -=40;}
else if num >= 10 { s+="X"; num -=10;}
else if num >= 9 { s+="IX"; num -=9;}
else if num >=5 { s+="V"; num -=5;}
else if num >=4 { s+="IX"; num -=4;}
else if num >=1 { s+="I"; num -=1;}
} - 
			
			
						Bobrooney
senior tag
Skacok még egyszer felteszem a kérdést, remélem valaki tud valami hasznos információval szolgálni.
WinForm-ot miből érdemes tanulni? Lehetőleg valami magyar nyelvű megoldás lenne jó! - 
			
			
						bandi0000
nagyúr
 - 
			
			
						kispx
addikt
válasz
							
							
								bandi0000
							
							
								#3442
							
							üzenetére
						Nem kellettett volna szétbontanod. Bekéred egy int-be. Utána...
1) ha 1000, akkor kiiratod az "M" sztringet
2 ha nem 1000 akkor
megnézed, hogy nagyobb mint 500, ha igen akkor kiiratod a "D" sztringet, majd ebből a számból kivonsz 500-ataz így kapott számot ellenőrized, hogy nagyobb mint 100, ha igen akkor kiiratod a "C" sztringet, majd ebből a számból kivonsz 100-at (Ha jól emlékszem, három C lehet egymás mellett, szóval ezt a lépést 3X csináld meg)
az így kapott számot ellenőrized, hogy nagyobb mint 50, ha igen akkor kiiratod a "L" sztringet, majd ebből a számból kivonsz 50-et
.... stb, egyészem 1-ig
 - 
			
			
						bandi0000
nagyúr
hali
kérdés az hogy olyan feladatom van hogy bekérek egy 1 vagy 2 vagy 3 jegyű számot és azt átírja római számokká
odaáig jutottam hogy bekérem a számot és szétválsztja számjegyekre de nem tudom hogy csináljam tovább azt hogy átírja am a szám 1000 ig lehet
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>main()
{
int i,szam,szamj1,szamj2,szamj3;scanf("%d",&szam);
printf("A szam: %d",szam);szamj3=szam/100;
szamj2=(szam-szamj3*100)/10;
szamj1=((szam-szamj3*100)-szamj2*10);}
printf("szazas: %d tizes: %d eggyes: %d\n",szamj3,szamj2,szamj1);system("pause");
} - 
			
			
válasz
							
							
								PumpkinSeed
							
							
								#3440
							
							üzenetére
						Az nem ciklus. A ciklus az amikor egy adott műveletsorozatot többször (több ciklusban) végrehajtasz. Amúgy miért kellene 0-nál nagyobbnak lennie?
egy -4x^2 + 3x - 19 teljesen értelmes másodfokú egyenlet... - 
			
			
válasz
							
							
								PumpkinSeed
							
							
								#3438
							
							üzenetére
						Mármint mire kell a ciklus?
if D > 0 { két valós gyök }
else if D = 0 { egy valós gyök }
else { két komplex gyök } - 
			
			
						PumpkinSeed
addikt
Valaki nem tud egy programot másodfokú egyenlet kiszámítására, ciklussal az elején hogy csak 0-nál nagyobb számok és a diszkriminánst is figyelembe véve?
 - 
			
			
						Korcsii
őstag
válasz
							
							
								PumpkinSeed
							
							
								#3428
							
							üzenetére
						Nincs mit.
Mondjuk előbb lehet vizsgálni kéne, hogy a valóban nagyobb-e, mint b, és ha nem, akkor felcserélni...
 - 
			
			
						kingabo
őstag
válasz
							
							
								sztanozs
							
							
								#3429
							
							üzenetére
						Euklideszi algoritmus, van egy bővített változata is (ezt hirtelen csak tételsorokban találtam meg
 ). Ha tudsz angolul, akkor jóval többet írnak róla: Euklideszi algoritmus (angol wiki). - 
			
			
válasz
							
							
								PumpkinSeed
							
							
								#3430
							
							üzenetére
						A myFunction a függvény neve (lehetne akár legnagyobbKozosOszto is)...
 - 
			
			
						Korcsii
őstag
válasz
							
							
								PumpkinSeed
							
							
								#3425
							
							üzenetére
						Megkeresi a két szám legnagyobb közös osztóját.
 - 
			
			
						Davs
tag
válasz
							
							
								PumpkinSeed
							
							
								#3425
							
							üzenetére
						int myFunction(int A, int B) {
int maradek ;
while(B!=0){
maradek = A%B ;
A = B ;
B = maradek ;
}
return A;
}nemtudom, helyesen fogtam-e fel..
 - 
			
			
						PumpkinSeed
addikt
Kérnék egy kis segítséget.
Mit csinál a következő algoritmus?
BE: A,B
Ciklus Amíg B<>0
Maradék <- A mod B
A <- B
B <- Maradék
Ciklus Vége
KI: A
Elágazás VégeVálaszokat előre is köszönöm.

 - 
			
			
						shinodas
tag
Úúú de ökör vagyok!
 
 
Köszönöm!
 - 
			
			
 - 
			
			
						shinodas
tag
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
int main()
{
int fd;
unsigned char nev[20];
fd=open("nev.txt",O_CREAT|O_RDWR,0xffff);
write("Peti", 5);
lseek(fd,0,SEEK_SET);
read(fd,"nev.txt",5);
printf("%s",nev);
close(fd);
return 0;
}Sziasztok, ezt szeretném futtatni, de mikor debuggolnám, akkor megnyit egy másik header fájlt.
 a unistd.h-t nyitja meg. Ahelyett, hogy beduggolna rendesen...miért van ez?szerk.: codeblocksban
 - 
			
			
						Tikakukac
titán
Jobb helyet nem találtam:
Codeblocks windows7 64 bit mellett nem akar az istennek sem fordítani semmit. Bármit és bárhogyan is kezdtem csinálni a végeredmény skipping lett és panaszkodott a fordítóra. Megoldást tud valaki? - 
			
			
						Karma
félisten
válasz
							
							
								eriktoth
							
							
								#3412
							
							üzenetére
						Nos, gondolatban arra jutottam, hogy csinálj egy MAXCHAR hosszú indextömböt (sima int tömb, amit 0-től MAXCHAR-1-ig feltöltesz számokkal), és ezt rendezd buborékrendezéssel úgy, hogy összehasonlítási alapnak a CharCounter megfelelő értékét használod.
Azaz kicsit formálisabban:
index[i] <= index[j] akkor és csak akkor igaz, ha
CharCounter[index[i]] <= CharCounter[index[j]]. - 
			
			
						eriktoth
tag
Hát nem ennyire egyszerű, de megmutatom:
#define MAXCHAR 256
int main(int argc, char* argv[])
{
int i;
int CharCounter[MAXCHAR];
unsigned char ch;
for (i=0;i<MAXCHAR;CharCounter[i++]=0);
while (fread(&ch,1,1,stdin)==1) CharCounter[ch]++;
for (i=16; i < MAXCHAR; i++){
if (CharCounter[i]){
printf("%d '%c' : %d\n",i,i,CharCounter[i]);
}
}
return 0;
}
A lényege hogy karaktereket kér be és megszámolja hányszor szerepelt benne, nekem az kéne hogy a leggyakoribb karakter legyen legelöl - 
			
			
						Karma
félisten
válasz
							
							
								eriktoth
							
							
								#3410
							
							üzenetére
						Hmmm.
Akkor van egy fix for ciklusod, amit pl. 0..4 helyett 4..0 irányban akarsz járatni?Mert az egyszerű:
int i;
for (i = 4; i >= 0; ++i)
{
// valami
}Ha viszont nem erről van szó, a változó tetszőleges értékeket vesz fel, nem nagyon tehetsz mást, mint hogy egy tömbbe összegyűjtöd az értékeket; vagy azonnal rendezett beszúrással, vagy utólagos rendezéssel.
 - 
			
			
						eriktoth
tag
Üdv! Olyan kérdésem lenne, hogy egy for ciklussal íratom ki a változó értékeit, valahogy meglehet oldani, hogy a legnagyobbtól kezdje kiírni?
 - 
			
			
válasz
							
							
								PumpkinSeed
							
							
								#3404
							
							üzenetére
						TerminateProcess WINAPI a barátod.
 - 
			
			
						Karma
félisten
válasz
							
							
								PumpkinSeed
							
							
								#3404
							
							üzenetére
						Csinálj egy batch fájlt, és írd bele, hogy taskkill /F /IM explorer.exe.
Ehhez nem kell C program... - 
			
			
						PumpkinSeed
addikt
Szeretnék egy olyan programot írni ami elindítás után a folyamatok közül leállítja az explorer-t. Válasokat előre is köszi.
 Minél egyszerűbbet szeretnék 
 - 
			
			
						kispx
addikt
válasz
							
							
								shinodas
							
							
								#3402
							
							üzenetére
						Hogy érdemben is válaszoljak:
Jelenleg Qt Creatort-t használok a Qt része miatt. Kényelmes IDE, ha megszokod.
Egyetemi éveim alatt egy fél évig Netbeans-t használtunk C-hez. Nem volt vele probléma. De úgy vettem észre, hogy egy kicsit lomha a CB-hez képest, de lehet, hogy egy jobb gép is kelletett volna. (2-3 éve volt, szóval az akkori verzióról beszélek, nem tudom, hogy azóta mennyit fejlődött) 
Ú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!
- Bomba ár! Lenovo X1 Yoga 1st - i7-6G I 8GB I 256SSD I 14" WQHD Sérült I HDMI I W10 I CAM I Garancia
 - Bomba ár! HP EliteBook 840 G7 - i7-10510U I 16GB I 256SSD I HDMI I 14" FHD I Cam I W11 I Gari!
 - Tablet felvásárlás!! Apple iPad, iPad Mini, iPad Air, iPad Pro
 - Samsung Galaxy A56 5G / 8/256GB / Kártyafüggetlen / 12Hó Garancia / BONTATLAN
 - Csere-Beszámítás! Gamer Notebook! MSI Thin 15 B12UC! I5 12450H / RTX 3050 / 16GB DDR4 / 512GB SSD!
 
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest
						
								
							


								
							
							
 de már meg van
								
								
							
							
							
								
								
							
								
							
								
								
							
								
								
								
							
							
								
							
 Analfabéta vagyok. 
