Új hozzászólás Aktív témák
-
Karma
félisten
válasz DrojDtroll #4962 üzenetére
Hibakeresésnél legközelebb másold ide a pontos hibaüzenetet, és hogy fordításkor vagy futáskor történt a hiba.
Egyébként szerintem az a baj, hogy egy 100^4 elemű inttömb bő 400 MB memória lenne, amit stacken nem lehet elhelyezni...
Ha ekkora memóriaterület kell, nem úszod meg a heap használatát (malloc/free), de sokkal célravezetőbb, ha újragondolod a feladatod. Több mint valószínű, hogy nincs szükséged az egész tömbre a memóriában.
[ Szerkesztve ]
“All nothings are not equal.”
-
bucsupeti
senior tag
válasz DrojDtroll #4966 üzenetére
bash scriptben akarod megtenni?
"Nem gond ha nem vágod a párologtatók bináris nyelvét..."
-
don_peter
senior tag
válasz DrojDtroll #4988 üzenetére
atio() függvény lesz a barátod
----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
don_peter
senior tag
válasz DrojDtroll #4990 üzenetére
Tördeld el a stringet a szóközöknél és utána az eldarabolt stringeket már át tudod alakítani az atoi() függvénnyel.
----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
DrojDtroll
addikt
válasz DrojDtroll #4992 üzenetére
Irtam ra sajat fugvenyt ami szetszedi innentol mar minden megy az atoi()-val.
-
don_peter
senior tag
válasz DrojDtroll #4993 üzenetére
Nah akkor megoldódott.
Egyébként egy for() és if() feltéttel meg lehet oldani.[ Szerkesztve ]
----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
alapz@j
tag
válasz DrojDtroll #4988 üzenetére
char *string = "2 31 457";
int i1, i2, i3;
sscanf(string, "%d %d %d", &i1, &i2, &i3); -
alapz@j
tag
válasz DrojDtroll #4996 üzenetére
Jól megbonyolítottad a dupla tömbökkel
char string[] ="1 22 333 444 5555";
char *pch = strtok(string," ");
while (pch != NULL) {
printf("%i\n", atoi(pch));
pch = strtok(NULL, " ");
}vagy ha már belelendültem:
char *string = "1 22 333 4444 5555";
size_t i = strlen(string);
while (--i) if (string[i] == ' ') printf("%i\n", atoi(string + i));ez utóbbi jobb is, mert a strtok-al ellentétben nem módosítja a stringedet.
-
Gekkocy
újonc
válasz DrojDtroll #5003 üzenetére
Nagyon szépen köszönöm a segítséget!
-
tototos
őstag
válasz DrojDtroll #5010 üzenetére
Hát mekkora méretet gondolsz a tömbnek? A foglalások számát nem közli a feladat így nem tudod mekkora tömbre van szükséged. A struktúra meg sokkal átláthatóbbá teszi a kódot, mint ha külön tömbben tárolod az összes adatot. Tehát ha már tömbbel szeretnéd megoldani akkor is inkább egy struktúra tömb a javasolt szerintem,
-
Jester01
veterán
-
Jester01
veterán
válasz DrojDtroll #5036 üzenetére
Elvileg a SetConsoleMode függvénnyel ki kell kapcsolni az ENABLE_LINE_INPUT beállítást. De nem tudom, nekem linuxom van
Jester
-
Jester01
veterán
-
alapz@j
tag
válasz DrojDtroll #5040 üzenetére
Nem befolyásol semmit, ez a függvény neve:
#include <conio.h>
int _getch( void );
wint_t _getwch( void );[ Szerkesztve ]
-
alapz@j
tag
válasz DrojDtroll #5042 üzenetére
Valaki kijavít, ha tévednék, de szerintem sima getch() (már) nincs. Van a conio.h-s _getch() és van a stdio.h-s getchar().
-
sssirius
tag
válasz DrojDtroll #5049 üzenetére
A termios.h headerben van definiálva a termios struktúra amin keresztül be tudsz állítani mindenfélét.
-
camillus
tag
válasz DrojDtroll #5069 üzenetére
Nem ez más lesz, de jobban utánanézve inkább nem kísérletezgetek.
http://i.imgur.com/Ea58ASu.jpg
-
sssirius
tag
válasz DrojDtroll #5078 üzenetére
Szia!
Ha interaktív program és a felhasználók csápolják be az inputot, akkor érdemes lehet bevezetni egy termináló karaktert/sort és egy while ciklusban figyelni, hogy megegyezik-e azzal.
Ha program adja be, akkor meg lehet próbálni EOF-ot keresni, pl. a getline függvény alkalmas lehet ebben az esetben.Ha ezek nem jönnek be, akkor a non-blocking read-et javaslom egy jól belőtt timeout-tal.
-
sssirius
tag
válasz DrojDtroll #5080 üzenetére
Akkor jó esélyed van, hogy EOF-ot kapsz a végén.
-
#34322688
törölt tag
válasz DrojDtroll #5086 üzenetére
Én pl a különböző parancsokra értem. printf-Console.WriteLine-stb.. ezekre értem, hogy nem ugyanaz, vagy igen? Meg nem tudom miért a C.B-ot erőltetik, amikor a V.S-is ingyenes.
-
Jester01
veterán
-
EQMontoya
veterán
válasz DrojDtroll #5133 üzenetére
Nullterminálni ki fogja a stringet?
Btw a !isalpha(..) mire kell? Ha az isdigit() teljesül, akkor számjegy és kész.Same rules apply!
-
EQMontoya
veterán
-
axioma
veterán
válasz DrojDtroll #5135 üzenetére
A temp azert nem nullazodik, mert a j ciklusvaltozo ellenere a magban a temp[i]-be irod a 0-t.
Innen meg ertheto a mukodes (az elozo szemet ottmarad, a rovidebb inputra raragad az elozo vege).[ Szerkesztve ]
-
EQMontoya
veterán
válasz DrojDtroll #5141 üzenetére
FILE **fin;
vs.
fin=fopen("pakol.be", "r+");Túltoltad kicsit a csillagot.
A változókat típus szerint érdemesebb lenne külön sorba deklarálni, ez így nagyon takony.
Szerk:
int** ladak
vs.
for(i=0;i<ladak_szama;i++){
if(ladak(i)>max && ladak(i)!=jel){
max=ladak(i);
maxindex=i;
}
}Itt is egydimenziósként használod a **-ot.
Szerintem némileg fogalmi zavarban vagy a pointerekkel, azt érdemes lenne tisztázni, mielőtt nekiállsz őket így használni.
[ Szerkesztve ]
Same rules apply!
-
nagyúr
válasz DrojDtroll #5144 üzenetére
Egy rekurziv megoldas lehet, pszeudokodban:
szavak_listaja = ures_lista;
fuggveny generalj_szot(szotoredek, rendelkezesre_allo_a, rendelkezesre_allo_b) {
ha szotoredek hossza = x akkor add hozza a szavak_listaja-hoz szotoredeket;
egyebkent
{
ha rendelkezesre_allo_a > 0 akkor generalj_szot(szotoredek+"a", rendelkezesre_allo_a-1, rendelkezesre_allo_b);
ha rendelkezesre_allo_b > 0 akkor generalj_szot(szotoredek+"b", rendelkezesre_allo_a, rendelkezesre_allo_b-1);
}
}Ezt at lehet alakitani rekurzio nelkulire, ha ugy tartja kedved.
while (!sleep) sheep++;
-
axioma
veterán
válasz DrojDtroll #5159 üzenetére
Te kell karban tarts egy vektort, amit veremnek hasznalsz, vagy egy valtozot ahol visszafele lepeskor is adminisztralod a valtozast, vagy lehet akar minden elorefele lepesnel megszamolni...
Az algobol eleve kiesik egy info, eleg az a-kat szamolni, mert (ha jol vettem ki) x=y+z igy b kovetkezik, sot a koztes lepeseknel is tudod, mert egy index ugyis kell hogy hol tartasz a veremben, az pont jelzi az aktualis hosszt.
De ezt en nem feltetlen igy csinalnam... ha a kerdes algoritmikus es nem programozastechnikai. Eloszor is kevesebb lepes, ha a run-length kodolas alapjan me'sz (minden lepesben nem 1 db valamelyik karaktert teszel le, hanem 1-tol az adott betubol visszalevoig barmennyit a betuket valtogatva, a legelejen megengedheto de cask ott a 0 db).
Masreszt ez az n alatt a k tipikus esete (x alatt az y), es mivel iszonyat gyorsan nonek ezek a szamok, igy ha ki kell iratni, akar arra is lehet tamaszkodni, hogy bele fog ferni egy nagyobbacska int-be a bitenkenti abrazolassal... az int-ben meg tudod szamolni - persze csak ciklusban de a stringnel joval gyorsabban - a bitek szamat, es csak ami jo azt konvertalod a-b-re.)
Valamelyik pszeudot osszedobhatom, ha gondolod, de mindet inkabb nem. -
EQMontoya
veterán
-
axioma
veterán
válasz DrojDtroll #5184 üzenetére
Azt gyanitanam latatlanban, hogy nem arra gondoltak, hogy a futasnal legyen ez ellenorizve es kiabaljon ha nem jo (vagy esetleg ettol fuggoen mas modszerrel csinald tovabb), hanem arra, hogy az algoritmus maga biztositsa (a felepitesevel), hogy ez alatt marad a felhasznalas (vagy nem hasznalsz dinamikusan foglalt valtozokat, vagy ha megis, azoknak a szamara van felso korlat mar maga az algo alapjan). Illetve van me'g amikor az a cel, hogy a tomoritest oldd meg (pl. 4 db iranyt jelzo info (fel/le/jobbra/balra) egy byte-ban, vagy 30 darab 0-120 kozti egesz lista vagy tomb helyett bithellyel abrazolva 16 byte-on). A kicsit konkretabb feladatbol kiderulhetne, hogy melyik (vszinu egyszeruen kodolhato de sok memoriat hasznalo) algoritmus kizarasa miatt tettek bele a feltetelt - es valoszinuleg mert ettol lett szep es otletet igenylo a feladat )
[ Szerkesztve ]
-
mepet
addikt
válasz DrojDtroll #5460 üzenetére
Hirtelen kikopiztam egy txt olvasós progimból az ideillő részt.
lines[] tömb elemei a sorok és sepline az üres sor sorszáma.//-------------------------------------------------------
//file reading, array fulfilling, finding seperator line
//-------------------------------------------------------
if ( file != NULL )
{
char line [MAX_CHARS]; //maximum line size
for (i=0; fgets ( line, sizeof line, file ) != NULL; i++ ) // read a line
{
sprintf(lines[i], "%s", line);
//printf("%d. %s", i, lines[i]);
if (strcmp(lines[i], "\n") ==0 ) // find seperator line
sepline=i;
}
fclose ( file );
}
else
{
perror ( filename );
return 1; // why didn't the file open?
} -
#36268800
törölt tag
válasz DrojDtroll #5602 üzenetére
Tulajdonképpen hetente változik a sorok száma, hiszen akkor húzzák ki az újabb számokat (manuálisan szerkesztem a fájlt).
Az oszlopok száma mindig 5, mivel ötös lottóról van szó. -
dobragab
addikt
válasz DrojDtroll #5607 üzenetére
feof-fal óvatosan, nem jóstehetség! Nem tudja kitalálni, hogy a következő beolvasás el fog-e halni (azaz a fájl végén vagyunk-e), hanem azt adja vissza, hogy az előző beolvasás EOF miatt halt-e el. Azaz könnyű rosszul használni, így tud még egy hibás adat bekerülni a lista végére.
Tudom, tudom, akasszak a tökömre egy lámpát, hogy sötétben is tudjak kaszálni.
-
#29810176
törölt tag
válasz DrojDtroll #5828 üzenetére
Köszi a válaszokat! Video sorozat is érdekel, ha nem túl drága (max. 10000Ft), jó kezdőknek, tényleg részletesen mindent (már ha létezik ez a szó a programozásban) elmagyaráz.
kispx:
Köszi Ez jó kezdőknek is? Nem igényel más nyelv ismeretét?
Ú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!
- Gumi és felni topik
- NVIDIA GeForce RTX 3080 / 3090 / Ti (GA102)
- Vicces képek
- NVIDIA GeForce RTX 4080 /4080S / 4090 (AD103 / 102)
- AMD GPU-k jövője - amit tudni vélünk
- A fociról könnyedén, egy baráti társaságban
- Politika
- Kupon kunyeráló
- Samsung Galaxy A54 - türelemjáték
- Van, amit nehéz lett megtalálni a Google keresőjével
- További aktív témák...