Új hozzászólás Aktív témák
-
Karma
félisten
válasz Korcsii #1739 üzenetére
A Borland és a Turbo is két antik retek, amit csak azért nyomnak az iskolákban, mert a tanárok lusták művelni magukat. Ahogy az előbb is említettem, csak DOS-ban működő móka mind a kettő.
A Dev-C++ teljesen korrekt választás, bár én annyira nem szeretem azt az IDE-t. Anno Code:locks-ot használtam első félévben, azóta meg XCode-ot.
“All nothings are not equal.”
-
Karma
félisten
válasz Korcsii #1789 üzenetére
Nezd meg az strcmp fuggvenyt, azzal lehet peldaul ket karakterlancot ABC szerint osszehasonlitani.
Az mar egy kicsit nagyobb magia, hogy olyan fuggvenyt irj, ami a struktura tetszoleges tagvaltozoja szerint kepes rendezni. C++-ban tudom hogy van erre megfelelo pointertipus, sima C-ben nem tudom.
[ Szerkesztve ]
“All nothings are not equal.”
-
shev7
veterán
válasz Korcsii #1789 üzenetére
stdlib-ben vannak rendezo fv-ek (pl qsort) neked csak a rendezeshez hasznalt fuggvenyt kell megirni, (ami megmondja, hogy ket elem kozul az elso a nagyobb, a masodik a nagyobb, vagy egyenloek)
@doc:
[ Szerkesztve ]
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
doc
nagyúr
válasz Korcsii #1789 üzenetére
az stdlib.h-ban definialt qsort lesz a baratod, kell irnod egy fuggvenyt ami eldonti ket structurarol hogy melyik a nagyobb (ez nem lehet gond), aztan csak siman raengedni a tombre, es voila, kesz is
ha csinalsz ket kulon fv-t, egyet a varos, egyet a termek alapjan torteno osszehasonlitasra, akkor meg mar teljesen kesz a feladatMOD: shev7 megelozott
[ Szerkesztve ]
-
shev7
veterán
válasz Korcsii #1793 üzenetére
"függvény talán azért lenne szerencsésebb, mert 3x kell használni, és így elég lenne egyszer megírni... de igazán semmi ötletem nincs erre, max az, hogy egy sima váltózóból kap egy értéket, és azt megvizsgálva a megfelelőt pörgeti végig... na de ez lehet még hosszabb/rosszabb, mint ha mindenhova odaírnám..."
Ezt csak en nem ertem mit akar jelenteni?
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
Gyuri16
senior tag
válasz Korcsii #1795 üzenetére
ezt pont igy meg lehet irni, olvasd el megegyszer shev7 es doc hszait.
a qsortnak adhatsz egy fuggvenyt, ami eldonti miszerint lesz rendezve. megirod ezt a ket fuggvenyt (varos es termek szerint), es beirod az ifedbe a megfelelo parameterekkel a qsortot
itt egy pelda: [link]
Nem vagyok egoista, csak uborkagyalu!
-
bpx
őstag
válasz Korcsii #1795 üzenetére
hát pl. az előbb linkelt megoldással qsort-tal és saját összehasonlító függvénnyel lehet rendezni, egy függvénypointer-tömbben (de szép szó ) eltárolod ezeket a fv-eket, és akkor elég a 'mit' változóval ezt a tömböt paraméterezni egy qsort hívásban
persze ha van összesen 2 fv-ed, akkor nem biztos hogy ennyire bonyolítani kell, és simán elég az amit te írtál -
Sk8erPeter
nagyúr
válasz Korcsii #1825 üzenetére
Nem néztem át a feladatot, de sima C-ben a függvény legelején (!) illik deklarálni a különböző változókat (pl. short int evfolyam; illetve char osztaly; a legelejére menjen), különben problémák lehetnek belőle (még ha a fordító nem is szól, mert esetleg C++ fordító).
Sk8erPeter
-
-
Karma
félisten
válasz Korcsii #1918 üzenetére
McDonaldsos konyhas inkabb...
Mondjuk vannak olyan szakok, ahol teljesen feleslegesen is beraknak programozast, nem tudom milyen motivaciobol. Pl. a Godolloi Egyetem kornyezetmernoki szakan vegzett ismerosomnek Visual Basicet kellett volna programoznia. Termeszetesen tanitani ott se tanitottak, az eloado peldakodjai is hackeltek es rondak voltak, de eleg korrepetalas utan sikerult atmennie.
“All nothings are not equal.”
-
shev7
veterán
válasz Korcsii #1990 üzenetére
hat mert ha irsz egy fv-t akkor nem lehetsz biztos abban, hogy a parameterul kapott tombok megfelelo meretuek lesznek, ertsd: a tomb1 eleg nagy ahhoz, hogy tomb2 tartalma beleferjen.
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
kingabo
őstag
válasz Korcsii #2301 üzenetére
"i, i-1 és/vagy i+1 is létezzen"
Jobban mondva ezek az indexek is a tömbön belül legyenek: legalább 0 és legfeljebb n-1, ha n elemű a tömb."különben szépen elszáll a program..."
Miért szállna el? Nagy valószínűséggel csak memória szemetet hasonlítgatna, ha dinamikusan lett lefoglalva a tömb, ha nem akkor a veremben elötte/utána lévő dolgokat. A c, c++ nem figyeli, hogy tömbön belül indexeltél-e. (pl a pascal-lal/ada-val ellentétben) Esetleg, ha nagyon rossz helyre menne, az oprendszer nem hagyja. c++-ban acces vialation kivételt dob ha jól rémlik, c alatt passz[ Szerkesztve ]
-
gergo00
csendes tag
válasz Korcsii #2366 üzenetére
Akkor beszéljunk programnyelven
Mutatnal egy rovid peldat a haromdimenzios tombbel.
Mondjuk én a dinamikussal probalkoztam csak azzal az volt a baj hogy:char *tomb[25][25],*tomb2,
while(!feof(fp))
{
fscanf(fp,%s,tomb2)
tomb[sor][oszlop]=tomb2
}
csak viszont igy a tomb2 memoriacime mindig felulirodik es az utolso elem tartalma lesz mindig benne[ Szerkesztve ]
-
Korcsii
őstag
válasz Korcsii #2368 üzenetére
persze a * nem kell az elejére, hülyeséget írtam, sry...
a lényeg, hogy a számokkal ellentétben sztringeknél kell egy 3. dimenzió is, mivel a string az egy char tömb, így azt is kell indexelni...kingabo: strcpy jó, csak épp semmi nem létezik, amit neki adni kéne...
[ Szerkesztve ]
-
gergo00
csendes tag
válasz Korcsii #2368 üzenetére
Mondjuk ha igy probálom akkor nem fut le a program, mondjuk 3dtombbel se.
int main()
{
char *tomb[255][255],sor=0,oszlop=0;FILE *fp;
fp=fopen("c:\\all.txt","rw");while(!feof(fp))
{
fscanf(fp,"%s",tomb[sor][oszlop]);
oszlop++;
if(oszlop>6)
{
sor++;
oszlop=0;
}
}system("pause");
}
5let? -
kingabo
őstag
válasz Korcsii #2370 üzenetére
"kingabo: strcpy jó, csak épp semmi nem létezik, amit neki adni kéne..."
Hogy hogy nem létezik? Tehát amit beolvas a file-ból az semmi?(#2372) gergo00: maga a string is egy tömb. Vagyis a 3. dim a beolvasott szövegeket fogja tárolni.
(#2371) gergo00: miért foglalsz le 255 oszlopú tömböt, ha a ciklus végén 6 oszlop után új sort kezdesz?
[ Szerkesztve ]
-
kingabo
őstag
válasz Korcsii #2375 üzenetére
Ok, igazad van.
A szemem az értékadáson akadt meg illetve ezen a mondaton: "csak viszont igy a tomb2 memoriacime mindig felulirodik es az utolso elem tartalma lesz mindig benne" Erre megoldás az strcpy, azt viszont tényleg nem vettem észre, hogy nincs hely foglalva a paramétereknek.[ Szerkesztve ]
-
Gyuri16
senior tag
válasz Korcsii #2380 üzenetére
egesz sor beolvasasara ott van a getline fuggveny, nem jo scanf-fel bohockodni ez megbirkozik a bemenettel akkor is ha nem tudod elore mekkora lesz.
a str fuggvenyekbol pedig jobb azokat hasznalni ahol a nagysagot is meglehet adni, strcat helyett strncat plszerintem a legjobb megoldas altalanos beolvasasra az, hogy getline-al beolvasol egy egesz sort es aztan szetszeded komponensekre az adott feladat szerint
Nem vagyok egoista, csak uborkagyalu!
-
Jester01
veterán
válasz Korcsii #2664 üzenetére
c++ rulz, ott csak >> operátor van, semmi más függvény
Azért ezt ne hangoztasd kezdők előtt mert még elhiszik. Példának okáért van std::basic_istream::get() 6 verzióban és még kb ezermillió másik függvény.
Az operator>> különben sem mindenható:
#include <iostream>
#include <string>
using namespace std;
int main(int, char**)
{
string name;
cin >> name;
cout << name << endl;
return 0;
}
$ g++ -Wall test.cpp
$ echo "John Doe" | ./a.out
JohnItt például jól jön a get():
#include <iostream>
#include <sstream>
using namespace std;
int main(int, char**)
{
stringbuf name;
cin.get(name);
cout << name.str() << endl;
return 0;
}
$ g++ -Wall test.cpp
$ echo "John Doe" | ./a.out
John DoeJester
-
chabeee
tag
válasz Korcsii #2756 üzenetére
igen ez utólagos próbálkozás volt, és ez kimaradt, de közben én is észre vettem, de még sajnos mindig kifagy.
@jester
másolási hiba,amugy nekem a fordító nem ir ki semmilyen fajta segítséget, lehet a mingw helyett vmit mást kéne feldobni ha egyáltalán ez okozza ezt a hibát[ Szerkesztve ]
-
artiny
őstag
válasz Korcsii #3050 üzenetére
(s)sanf itt a fscanf re gondoltal? mert a sanf t nem ismerem es nem adott semmit a google.
Valmi ilyesmit probaltam. Harom szamot beolvasni egy txt bol es azt osszeadni es kiiratni.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void)
{
int i;
int d;
FILE * f;
f = fopen("szam.txt","r");
while (( i= getc(f)) != EOF ){
fscanf(f,"%d",&i);
}
fclose(f);
printf("%d",d);
return 0;
} -
Jester01
veterán
Ú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!
- Na, még egyszer, csak ezúttal OnePlus Open néven
- Amazon Kindle
- Kamionok, fuvarozás, logisztika topik
- Amlogic S905, S912 processzoros készülékek
- Nyíregyháza és környéke adok-veszek-beszélgetek
- A régi node-okra koncentrál a szankciók miatt Kína
- Magga: PLEX: multimédia az egész lakásban
- Azonnali VGA-s kérdések órája
- Windows 11
- Székesfehérvár és környéke adok-veszek-beszélgetek
- További aktív témák...
- LG NanoCell 55NANO766QA Halvány píxel csík
- Philips 58PUS8545/12 1 ÉV GARANCIA Játék üzemmód
- Tyű-ha! HP EliteBook 850 G7 Fémházas Szuper Strapabíró Laptop 15,6" -65% i7-10610U 32/512 FHD HUN
- Bomba ár! HP EliteBook 840 G5 - i5-8G I 8GB I 128GB SSD I 14" FHD I HDMI I Cam I W10 I Gari!
- The Last of Us Part I Ps5