- Mobil flották
- Samsung Galaxy A54 - türelemjáték
- Android alkalmazások - szoftver kibeszélő topik
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- Samsung Galaxy S21 FE 5G - utóirat
- Yettel topik
- Redmi Note 13 5G - fogyókúra után
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- iPhone topik
- Google Pixel 3 - egyszerűen nagyszerű
Hirdetés
-
Rövid előzetesen a S.T.A.L.K.E.R. 2: Heart of Chornobyl
gp Továbbra is szeptemberi premierrel számolnak a fejlesztők, reméljük több halasztásra már nem kell számítanunk.
-
A személyre szabott reklám lehet a streaming következő slágere
it A jobb célzott hirdetések érdekében adatplatformot indít a Warner Bros Discovery.
-
Ülésezik a hardveregylet
ph Az irodai készülékek és monitorok társaságát egy ház, egy egér és egy DAC egészíti ki.
Új hozzászólás Aktív témák
-
Lortech
addikt
válasz FehérHolló #5 üzenetére
Amire reakcióként az illető moderátornak jeleztem is, hogy nem egészen jók azok a topikok, amiket linkelt (először csak a C++ és a VS C# topikokat linkelte, később az ajánlásom hatására a linuxos c topikot is beralta), mivel elég jelentősen eltérnek ezek a nyelvek gyakorlati szempontból, és sokszor feleslegesen keveredik a kettő (c/c++) és ez félreértésekre adhat okot. Felvetette válaszában, hogy moderátor kollégáival megbeszélik és majd idővel rendbe szedik a szoftverfejlesztés részt.
Szerintem igencsak fáférne már a ph-ra a szoftverfejlesztés rész rendberakása. Legalább minden nyelvnek vagy jól elkülönülő témakörnek egy külön topik, normális kezdőhozzászólással (mint pl ebben a topikban), nem olyanokkal, amik pl. egy házifeladat megoldásában kérnek segítséget, aztán úgy maradtak, és nagy topikokká váltak.Thank you to god for making me an atheist
-
Lortech
addikt
válasz kicsitomi88 #67 üzenetére
Dehogynem. A 2. számot beviszed egy enterrel, a szám megy a változóba, a sorvége meg benne marad a pufferben, és a %c meg egyből behúzza.
Gányolás megoldás: scanf("%c%c", &c,&c);szerk: amúgy meg a scanf monnyon le.
[ Szerkesztve ]
Thank you to god for making me an atheist
-
Lortech
addikt
válasz kicsitomi88 #69 üzenetére
Megnéztem normális megoldást is: scanf("%1s", &c);
(Csak hogy ne az előző maradjon meg. )Thank you to god for making me an atheist
-
Lortech
addikt
válasz kicsitomi88 #71 üzenetére
A néhány éves forráskódjaimban.
Annyit csinál, hogy átugorja a white-space-eket, ha vannak, és az első nem white-space-t teszi a c-be.
Thank you to god for making me an atheist
-
Lortech
addikt
Nyilván nincs rá beépített függvény, ha lenne, nem ez lenne a feladatod.
Neked kell megírnod.Gondold végig (ha eddig nem tetted volna), hogyan áll össze egy szám tetszőleges számrendszerben általánosan, majd azt, hogyan lehet átváltani egy decimális számot másik számrendszerbe (pl binárisba). Nincs nehéz dolgod, mert eléggé le van egyszerűsítve a feladat.
A fv. kb 10 sor cicomázással együtt. A fő rész egy ciklus, benne két db értékadás.[ Szerkesztve ]
Thank you to god for making me an atheist
-
Lortech
addikt
A hibaüzenet azért van, hogy ki tudj indulni belőle.
Ha be van includeolva a math.h, működnie kéne első ránézésre (annak a sornak). Miért log(2)? Miért nem log(b)? A ciklusban az első értékadás fordítva van. Ráadásul ha egy karaktertömbnek elemének értékül adsz egy int-et, akkor nem a megfelelő szám karaktere kerül bele, hanem a kódja.
szerk: while () után pontosvessző.[ Szerkesztve ]
Thank you to god for making me an atheist
-
Lortech
addikt
Minek utaztatod meg a stringeket?
Hiszen csak a char*-okra mutató pointereket kell kicserélni ahhoz, hogy **matrixban kialakuljon a helyes a sorrend:if (strcmp(matrix[i], matrix[j]) < 0)
{
char *sp = matrix[i];
matrix[i] = matrix[j];
matrix[j] = sp;
}De ha mégis úgy kéne, akkor pl :
#include <stdio.h>
#include <string.h>void rendez(char **matrix)
{
int i, j;
char ideiglenes[20]="";for(i = 0; i < 10; i++)
for(j = 0; j < 10; j++)
{
if (strcmp(matrix[i], matrix[j]) < 0)
{
strcpy(ideiglenes, matrix[i]);char *segedp;
segedp = (char *)realloc(matrix[i], strlen(matrix[j]) + 1);
matrix[i] = segedp;
strcpy(matrix[i], matrix[j]);segedp = (char *)realloc(matrix[j], strlen(ideiglenes) + 1);
matrix[j] = segedp;
strcpy(matrix[j], ideiglenes);
}
}
printf("\nRendezve: \n\n");
for(i = 0; i < 10; i++)
printf("%s\n",matrix[i]);}
int main(void)
{char *automarkak[10];
automarkak[0]=(char *)malloc(strlen("Mercedes") + 1);strcpy(automarkak[0], "Mercedes");
automarkak[1]=(char *)malloc(strlen("Ferrari") + 1);strcpy(automarkak[1], "Ferrari");
automarkak[2]=(char *)malloc(strlen("Audi") + 1);strcpy(automarkak[2], "Audi");
automarkak[3]=(char *)malloc(strlen("Lada") + 1);strcpy(automarkak[3], "Lada");
automarkak[4]=(char *)malloc(strlen("Chevrolet") + 1);strcpy(automarkak[4], "Chevrolet");
automarkak[5]=(char *)malloc(strlen("Ford") + 1);strcpy(automarkak[5], "Ford");
automarkak[6]=(char *)malloc(strlen("Ferrari") + 1);strcpy(automarkak[6], "Skoda");
automarkak[7]=(char *)malloc(strlen("Suzuki") + 1);strcpy(automarkak[7], "Suzuki");
automarkak[8]=(char *)malloc(strlen("Opel") + 1);strcpy(automarkak[8], "Opel");
automarkak[9]=(char *)malloc(strlen("Chrysler") + 1);strcpy(automarkak[9], "Chrysler");rendez(automarkak);
}[ Szerkesztve ]
Thank you to god for making me an atheist
-
Lortech
addikt
-
Lortech
addikt
A .c-n mit akarsz futtatni? Az a forráskódod (elvileg ). Azért írja ki, hogy hozzáférés megtagadva, mert nincs beállítva rá az x attribútum (futtatható). //de még egyszer mondom, egyébként sincs értelme futtatni, mert nem futtatható állomány, csak a forráskód.
"gcc filenev -o filenev.c -lncurses" még véletlenül sem jó, mert nem a filenev nevűt kéne fordítanod, hanem a filenev.c nevű forráskódodat a filenev nevű binárisba, azaz
gcc filenev.c -o filenev -lncurses, még egyszer: ahol filenev.c a forráskódod, filenev pedig az a fájlnév, amiben a lefordított programod szeretnéd látni.
Ezután futtatás ./filenev-vel.
Ha még így is hibaüzenet a válasz, akkor a hibaüzenetet másold be, mert anélkül nem tudok segíteni.[ Szerkesztve ]
Thank you to god for making me an atheist
-
Lortech
addikt
Házikkal legyetek szivesek máshova fáradni, ez nem az "itt a házim csináld má' meg" topik!
Ha elkezditek, látni valamit, hogy próbáljátok megoldani, biztos lesz segítség is.Thank you to god for making me an atheist
-
Lortech
addikt
válasz feherpeter #234 üzenetére
traits of turbo c
8. oldal: 15.12.2 delay( ) pont.Thank you to god for making me an atheist
-
Lortech
addikt
válasz feherpeter #236 üzenetére
Nem a gépeddel van a "baj", hanem a rutinnal. Mai ( és "tegnap előtti" ) gépeken nem fog megfelelően futni, mert túl gyorsak.
De ott van leírva jól a probléma, és lehetséges alacsonyszintű megoldási módok is. Jobban, jobbat én se tudok írni.
Hardver / operációs rendszer / fordítófüggetlen, jó megoldás nem nagyon van erre az egyszerűnek tűnő problémára.Turbo C + DOS-ról van szó egyáltalán? A legemészthetőbb megközelítés talán az, hogy egy ciklusban lekéred az aktuális időt addig, amíg a kiinduláshoz képest megfelelő idő eltelt. Ez azért nem jó megoldás, mert hiába nem csinál semmi hasznosat a program, a várakozás közben folyamatosan terheli a gépet.
Thank you to god for making me an atheist
-
-
Lortech
addikt
válasz Retekegér #277 üzenetére
Normális olyan értelemben, hogy vsz. nem bug. Nem normális olyan értelemben, hogy gondolom nem ezt szeretnéd. Esetleg bennemarad a pufferben valami az előző beolvasásokból, ezért egyből lefut a beolvasás. Ha bemásolod a kódot, akkor egyértelművé tehető. A system("PAUSE"); a program végén nem szép megoldás, és kerülendő is valódi alkalmazásoknál, de tesztelni és tanulgatni megteszi az előbbi figyelembevételével.
[ Szerkesztve ]
Thank you to god for making me an atheist
-
Lortech
addikt
válasz Retekegér #279 üzenetére
Uff. Szóval if után nem teszünk ;-t, hacsak nem egy üres utasítást akarsz szimbolizálni.
Itt most az történt, hogy az igaz ágadban lett egy üres utasítás (;). Majd jön egy blokk ( {} )ami mindig lefut az előbbi if-től függetlenül, így persze egyből kilép az exit miatt.
Meg az ilyen exit(-1) is felesleges, egy if () {} else {} megoldás szimpibb.De hozzán legközelebb az áll, hogy ha a két param sikeresen beolvasódott, akkor csinálsz valamit, egyébként meg nem (nincs else ág sem), és végetér a program a main blokk végén.
[ Szerkesztve ]
Thank you to god for making me an atheist
-
Lortech
addikt
Például létrehozol egy egyszerű structot két mezővel:
int szam;
char * szo;Aztán implementálsz egy neked szimpatikus dinamikus adatszerkezetet (pl láncolt lista) melynek elemtípusa az előbbi struct és amelyben tudsz keresni a "szo" mezo szerint. Aztán feldolgozod a szavakat, és ha van már egy adott szó a listában, akkor a megfelelő elem szam mezőjéhez hozzáadsz egyet, ha nincs, akkor befűzöl a lista végére egy új elemet. Nyilván itt keményen memóriát kell kezelni, de ez alap.
Thank you to god for making me an atheist
-
Lortech
addikt
1, int x, i, j = 0;
Ez nem azt jelenti, hogy x = 0 i = 0, j= 0, hanem x és y = meghatározatlan és j =0.
2, amiért nem fordul a programod az az, hogy i és j a cikluson kívül is deklarálva van, meg a ciklus fejében is.
3, minek ide a double? Ha %d-vel akarsz kiiratni, akkor pl int-ként deklaráld illetve fordítva, ha double-t akarsz kiiratni akkor "%f" a szimbólum.
Thank you to god for making me an atheist
-
Lortech
addikt
válasz Wizardmon #349 üzenetére
Nyiss egy cmd ablakot (parancssor), és ott futtasd le a kapott exe fájlt, és látni fogod a programod kimenetét, ha volt neki.
Ennek kell történnie, amit leírtál, mivel a program befejeződik felhasználói interakció nélkül, és a parancssor bezáródik, ezért nem látod az eredményt.Thank you to god for making me an atheist
-
Lortech
addikt
válasz Wizardmon #362 üzenetére
scanf("%1s", &b);
Bennemarad az inputban az előző beolvasásból az enter és azt húzza be a karakter beolvasásánál.
scanf(" %c",&b) is jó (szóköz a c előtt), de ez csak egy db white-spacet küszöböl ki.
Ha pl. azt írod, hogy számnak, hogy:
1 szóközszóközszóköz akkor már nem jó.Thank you to god for making me an atheist
-
Lortech
addikt
Ahogy a kolléga mondja, azzal a kiegészítéssel, hogy ha én lennék a tanárod, biztos belekötnék az inicialiázatlan változóra hivatkozásba. Ami akár véletlenszerűen meg is egyezhet a kitalálandó számmal, így nem is kér tippet. Szóval kicsit át kéne variálni.
[ Szerkesztve ]
Thank you to god for making me an atheist
-
Lortech
addikt
Inicializálás ~ kezdőértékadás, nem pedig deklarálás, amit az említett sorban csináltál.
Ezzel a sorral létrejött a két változó, lefoglalódott nekik a típusuknak megfelelő memóriahely, de ez nem járt explicit értékadással, az lesz innentől a változók értéke, ami a lefoglalt memóriarészben maradt (random szemétként kezelendő). Így elméletileg lehetséges, hogy a tipp értéke megegyezik azzal, amit majd a rejtett változóba bekérsz, így a program hibás.
tipp:
int rejtett, tipp;
beolvasás
tipp=rejtett + 1
ciklus..Thank you to god for making me an atheist
-
Lortech
addikt
válasz Fire/SOUL/CD #455 üzenetére
Nem azért, de te vs. 2008-ban managed c++ projektet nyitottál, nem natívat.
Egyébként ~ugyanaz a kód lefordítható vele mint amit devcpp-hez írtál.Thank you to god for making me an atheist
-
Lortech
addikt
válasz Fire/SOUL/CD #457 üzenetére
Én pedig csak bátorkodtam jelezni, hogy hiányos információid miatt nevetgélsz a WriteLine-on és félrevezeted a kérdezőt tisztelt 12 éve végzett rendszerprogramozó kolléga.
Thank you to god for making me an atheist
-
Lortech
addikt
válasz Fire/SOUL/CD #462 üzenetére
Örülök, hogy sikerült.. Te CLR projektet hoztál létre (.NET managed kód, amit írtam), ami .NET BCL-ből dolgozik, ezért volt WriteLine.
Natív win32 projekt teljesen más tészta.
ui: Nem rendszerprogramozó, hanem simán okleves programozó (programtervező informatikus).Thank you to god for making me an atheist
-
Lortech
addikt
válasz Fire/SOUL/CD #465 üzenetére
Megmondom őszintén, azt hittem, hogy elírtad, majd helyesbítettél az utóiratodban. amargo kifejtette már: értelmetlen a kérés / kérdés.
Thank you to god for making me an atheist
Ú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!
- Asus ROG Phone 6 - Limited Batman Edition / BONTATLAN - 3 év gari
- Huawei Matebook D14 i5-11.gen/16GB DDR4/512GB PCIe SSD/14" Full HD IPS/Gar.:2025.10
- Rog 4070 Ti //KERESEM!!//
- Binepad BN006, programozható, mechanikus macropad, low profile Kailh Choc v1 Red switchek
- CoolerMaster ControlPad, programozható, mechanikus macropad, Gateron Red switchek