Hirdetés

2024. június 3., hétfő

Gyorskeresés

Hozzászólások

(#5301) DrojDtroll válasza G.A. (#5299) üzenetére


DrojDtroll
addikt

még nem látom az eltéréseket

Szerintem fontos lenne utánanézned.

(#5302) dabadab válasza G.A. (#5299) üzenetére


dabadab
titán

Nyolc bites mikroprocesszoron a C# egyreszt nem letezik, masreszt technikailag kb. lehetetlen megvalositani, harmadreszt meg ha megis sikerul, akkor se akarna senki se hasznalni. (oke, mondjuk a C++ se hangzik tul hihetoen, sot, igazan a C is eleg hatareset)

"Nekem a C, C++ és a C# egy kalap alatt van."

Pedig azert eleg messze vannak egymastol: a C gyakorlatilag hordozhato Assembler a hatvanas evek vegerol, a C# meg nagyjabol minden modern paradigmat (objektumorientacio, generikus programozas, funkcionalis programozas, mittomen) tamogato, virtualis gepen futo cucc.

DRM is theft

(#5303) EQMontoya


EQMontoya
veterán

Do not feed the troll! Nyilvan nem gondolta komolyan. :)

Same rules apply!

(#5304) buherton válasza dabadab (#5302) üzenetére


buherton
őstag

8 bitesre is van C++ -> [link]. Csak pl. try catch használata nem javallott, mert igen erőforrás igényes.

tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!

(#5305) EQMontoya válasza buherton (#5304) üzenetére


EQMontoya
veterán

Exception handling nem nagyon van semmilyen embedded es realtime rendszerben.

Same rules apply!

(#5306) G.A. válasza dabadab (#5302) üzenetére


G.A.
aktív tag

Utánanéztem, hogy eddig melyiket is használtam a C vagy a C++ és ez elsővel szoktam a mikróvezérlőkre(AVR) kódot írni, WinAVR-el.

A C# most hirtelen azért kellett, mert egy USB átalakító chip-hez akartam egy parancssorban lefutható kódot írni, aminek a példa kódja C#-ben volt leírva.

GA

[ Szerkesztve ]

(#5307) alapz@j válasza G.A. (#5294) üzenetére


alapz@j
tag

Nem teljesen értem a problémát - az ascii karaktereket tartalmazó stringed az önmagában egy tömb, ami 0xXX értékeket tartalmaz...

(#5308) alapz@j válasza G.A. (#5306) üzenetére


alapz@j
tag

Te, ez most komoly? Eddig programoztál egy nyelven, amiről nem is tudtak, hogy micsoda? Vagy lemaradtam valamiről?

(#5309) Zsolt1


Zsolt1
tag

Sziasztok!
Egy olyan kérdésem lenne, hogy egy rekurzív függvény hívásnál, ahol a függvény paramétere egy tömb, ott miért módosul az eredeti tömb a rekurzióból visszatérés után? Elvileg úgy lenne logikus, hogy mivel azt a tömböt csak paraméterként átadom a függvénynek rekurzív hívásnál és az ott abban a fv-ben az újonnan létrehozok egy tömböt, akkor csak odafelé adom át az értékeket, visszafele nincs módosítás, és miután lefutott a rekurzív fv., akkor a felső szinten nem változik meg a tömb tartalma. Azért nem értem a dolgot, mert pont e-miatt kell ugye változó helyett pointert használnom, ha meg akarom tartani az értéket a rekurzióból visszatérés után is.
Ez most szerintem kicsit össze-vissza lett ezért írok inkább egy példát, hogy mire gondoltam:
void rekurzivfv(int tomb[][M]) { //definiálom a fv-t és megadom paraméternek a tömböt
...függvényen belüli műveletek amik módosítják a tömb tartalmát....
rekurzivfv(tomb); //meghívom a fv-t, ami megkapja a tömböt
...itt már a tömb elemeinek értéke módosult, ahhoz képest, ami a függvény elején volt, arra
amire a rekurzió alatt változott pedig elvileg nem szabadna, mert a rekurzív fv-nél a fv újra
létrehozza a tömböt és miután a végigfutott, az innen már nem lehetne elérhető, mert
semmilyen formában nem adtam vissza...
}

Az jutott az eszembe még, hogy a teljes tömb átadásakor ott igazából tömb elejére mutató címet adom csak át (ha jól tudom), szóval olyan mintha az egy pointer lenne elvileg. Lehet, hogy az miatt módosul?
Meg lehet valahogy azt oldani, hogy ne módosuljon a rekurzív meghívás alatt az alap függvényben a tömb? Előre is köszönöm a segítséget! :R

[ Szerkesztve ]

(#5310) EQMontoya válasza Zsolt1 (#5309) üzenetére


EQMontoya
veterán

Mert amit átadsz, az nem az egész tömb. Gondolj csak bele, durva is lenne, ha az egész tömböt mindegy egyes hívásnál lemásolnád. Elég költséges lenne a rekurziód.
Amit átadsz, az egy pointer (memóriacím), a tömb kezdetére.

Amit leírtál, az ezzel ekvivalens: void rekurzivfv(int* m)

Same rules apply!

(#5311) Zsolt1 válasza EQMontoya (#5310) üzenetére


Zsolt1
tag

Igen a végén írtam ezt én is, hogy ez az egyik tippem, hogy miért módosul, de akkor van valami egyszerűbb módszer, amivel ki lehet azt küszöbölni, hogy megváltozzon (esetleg másféle átadás, stb...)? Szerintem az lenne a megoldás, ha az egész tömböt eltárolnám egy másolatban, csak ugye nagyon sokszor kéne a rekurzió miatt másolgatni a tömböt ide-oda és nem hiszem hogy túl optimális lenne. (szerk.: na most jól leírtam még egyszer, ami a válaszban volt) Gondolkodtam azon is, hogy csak azokat az elemeket másolgatom, amik a rekurzió alatt megváltoznak, de az valamiért nem működött.

(#5312) EQMontoya
Labirintusban útkeresés backtrack algoritmussal. Azért módosítom, mert ahogy halad befele, úgy mindig beleírom a már bejárt utat és a rekurzióból visszafele meg további lehetséges utakat keresek, mert az összes lehetségeset meg kell találnia. És itt kéne, hogy a backtrack miatti visszaugrásnál eltünjön a módosítás és visszakapjam a rekurzió előtti tömböt. Az nem okoz gondot, hogy ott nincs megjelölve, hogy jártam (sőt a másik irányból érkező utak miatt pont ezért kéne ez), mert az if szerkezet miatt ugyan azt az útvonalat többet már nem vizsgálja meg.

[ Szerkesztve ]

(#5312) EQMontoya válasza Zsolt1 (#5311) üzenetére


EQMontoya
veterán

Nem egészen értem magát az alap problémát: ha módosítod, miért meglepő a változása? Ha nem akarod, hogy változzon, miért módosítod? Milyen problémát szeretnél megoldani ezzel a kóddal?

Same rules apply!

(#5313) Zsolt1 válasza Zsolt1 (#5311) üzenetére


Zsolt1
tag

És amiért megmarad ez a módosítás, a maradék utakat már nem tudom megkeresni, mert a tömbben ugye az már jelölve van, hogy ott már ment az útvonal, pedig nem, mert az csak egy másik volt.

(#5314) EQMontoya válasza Zsolt1 (#5313) üzenetére


EQMontoya
veterán

A backtrack pont azért backtrack, mert vissza tud lépni. Gondolom, a tömbnek csak 1-2 elemén végzel változtatást egy lépésben, azt mentsd el szépen minden iterációban és ha visszalépés van, revertáld.

Same rules apply!

(#5315) Zsolt1 válasza EQMontoya (#5314) üzenetére


Zsolt1
tag

Igen ezt már próbáltam, hogy minden lépésnél ugye 1 elemet módosítok (jelölöm a bejárt utat) és azt elmentem egy tmp-be még a fv hívása előtt és a fv hívás után visszaírom azt az egyet, viszont nálam valamiért nem volt jó így, mert ez után a visszaírás helyett csak feltöltötte 2-esekkel (azzal jelölöm a bejárt utat) az egész labirintust.
Azért még próbálkozok :) Köszönöm az eddigi segítséget! :R

[ Szerkesztve ]

(#5316) axioma válasza Zsolt1 (#5311) üzenetére


axioma
veterán

Egy kicsit nem ertem, hogy mi a tomb, ha rekurzivan hivsz, nem a vermed?
Ha a rekurziv hivas _nelkuli_ (ciklussal) backtrackre gondolsz, na azt en is parszor leirtam mar, es tombbel meg tomb-mutatokkal, szinten rejtveny-megoldasokhoz. Bar mindig ido kellett a beloveshez, mert a megfordulasi pontokra elegge figyelni kell...
Tulajdonkeppen a tombot veremnek hasznalod. Az egyetlen dolog, amit adminisztralni kell, hogy amikor egy elemnel vagy, akkor tudd, hogy most eppen merrefele haladsz. Me'g elotte vagy a feldolgozasnak az ott lehetseges ertekeknel, vagy ket tovabblepesi lehetoseg kozott, vagy tullepted mindet.
Egyszeruseg kedveert legyenek a lehetseges tovabblepesi pontok az iranyok, valami egymast koveto egeszek jelolessel. Ekkor amikor a verembe letolok egy elemet, a mutatot feljebb viszem a kovetkezore, ott inicializalom a lehetseges elemek ala eggyel. Amikor meg visszaterek, akkor a mutato dekrementalasaval egyidoben az ott kapott erteket bamban novelem eggyel, es ugy megyek neki a kovetkezo ciklusnak (ami hozhatja azt, hogy tulmentunk, megint visszalepes van, egy ciklus nem feltetlen egy vizsgalat).

Viszont ha jo neked ez rekurzivban is, akkor meg en azt csinalnam, hogy nem a tombot tolom le, hanem csak az utolso lepest. A tobbi minek neked? Tudod, hogy honnan jossz, for ciklusban meghivod az osszes lehetseges tobbi iranyra, es kesz. A tabla allapota meg lehet az egesz rekruzion kivuli statikus (termeszetesen ugy ertve, hogy visszalepesnel a bejarasi jelolest is visszaveszed).

(#5317) Zsolt1 válasza axioma (#5316) üzenetére


Zsolt1
tag

Köszönöm a segítséget! Igen közben rájöttem, hogy én igazából nem is backtrackel csinálom, hanem szimplán rekurzióval, amire valamiért azt hittem, hogy backtrack, de közben utánaolvastam és abban ugye teljesen máshogy van a visszalépés (nem rekurzióval), nekem meg ez idáig nem tűnt fel és nálam minden visszalépéses dolgot a rekurzió csinál meg, szóval köze sincs a backtrackhez az én megoldásomnak. :D Ez mondjuk elég nagy gond, mert a feladatot konkrétan backtrackel kéne megoldanom, de valószínűleg most már maradok a rekurziónál, azt legalább értem mit csinál :DDD

(#5318) axioma válasza Zsolt1 (#5317) üzenetére


axioma
veterán

???
Backtrack: a (jellemzoen fabejaros, de mindenkepp az eseteket reszleges megoldasokon keresztul bejaros) algoritmus bizonyos feltetelek mellett (alapesetben: a reszleges megoldas mar teljes megoldas(jelolt), ami viszont nem jo, vagy a reszmegoldasrol mar ott eldol, hogy jo megoldasnak nem lehet resze) az elozo [szintu] reszmegoldas kovetkezo lehetseges kiterjeszteset veszed. Vagyis felhasznalod a kereses korabbi eredmenyeit.
Ezt meg lehet csinalni rekurzivan (itt a backtrack az, amikor a fuggvenybol visszatersz, de az elozo peldanyban benne vagy egy mondjuk for ciklusban, ami veszi a kovetkezo elemet), meg meg lehet csinalni kezzel is, amikor a backtrack a "verem" pop-ja (vagy tombnel mint lent az index dekrementalas). Soxor az utobbi gyorsabban fut, de nehezebb jol megirni...

[ Szerkesztve ]

(#5319) Zsolt1 válasza axioma (#5318) üzenetére


Zsolt1
tag

Igen közben megkérdeztem más embereket is, és ők is ezt mondták, hogy a rekurzívan való megoldás is backtrack, és alap helyzetben én is erre gondoltam (hiszen itt is visszább lépkedek, csak itt a rekurzió old meg mindent majdnem).
Azért hittem azt, hogy a rekurzív nem az, mert ez egy feladat volt és az előadó kihangsúlyozta, hogy az ötöshöz backtrackel kell megoldani, viszont ha valaki rekurzívan csinálja meg, azt is elfogadja (csak az gondolom nem 5-ös, de ez lényegtelen), és ez miatt alakult ki teljes káosz bennem :D
A vicc az, hogy még ma is ezt mondta, szóval úgy lehetett érteni, mintha csak a ciklusos megoldás lenne backtrack, viszont ebből és az itteni kommentekből rájöttem, hogy mind a kettő az, csak az egyik így a másik úgy működik. Tanulság: amit mond az oktató, azt azért 3 helyen legalább le kell ellenőrizni, hogy tényleg úgy van-e :DDD Szerencsére már minden működik, köszönöm a segítséget.

(#5320) axioma válasza Zsolt1 (#5319) üzenetére


axioma
veterán

Hat, tenyleg erdekes kicsit nekem az a terminologia, amit hasznal, de ezen mar nem mulik, a lenyeg hogy ha kisse furan is, de ertheto hogy mit akar. Viszont megirhatnad otosert iterativan akkor meg, a manko ott van, meg itt is kerdezhetsz ha elakadsz...

(#5321) PumpkinSeed válasza emvy (#5270) üzenetére


PumpkinSeed
addikt

Most csak így véletlen tévedtem ide, de ezen elmosolyodtam, hogy a kérdező kért forráskódot és eddig csak if-eket látott, erre az első dolog egy konkrét linux kernel amit kap. :D

"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán

(#5322) don_peter


don_peter
senior tag

Kedves fórumlakók :D
Ma úgy látszik ilyen napom van, nem pörög az agyam, vagy csak igen lassan.
Következő problémába botlottam:
Van egy másodperc számlálom, ami char típusú és 0-tól 9-ig számol.
0,1,2,3,4,5,6,7,8 és 9, tehát rendesen előre számol.
Az lenne a gondom, hogy ezt nem tudom megfordítani.
Tehát megfordítva így nézne ki: 0,8,4,C,2,A,6,E,1,9 (hexában)
Tehát amikor 1-et mutat a másodperc a 0x08-at kellene kiküldenie, ha viszont 5 mutat, akkor a 0x0A-t.
Hogy tudom ezt megoldani?
Így néz ki ez kódban:
fuggveny(mp_1);
Itt az mp_1-ben a másodpercek pörögnek 0-9-ig, ezeket kellene még függvény előtt megfordítani a függvény zárójelei közt.
Előre is köszi a segítséget.

[ Szerkesztve ]

----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----

(#5323) Jester01 válasza don_peter (#5322) üzenetére


Jester01
veterán

(x >> 3) | ((x >> 1) & 2) | ((x << 1) & 4) | ((x << 3) & 8)

-vagy-

static const char table[] = { 0, 8, 4, 12, 2, 10, 6, 14, 1, 9 };
x = table[x];

[ Szerkesztve ]

Jester

(#5324) don_peter válasza Jester01 (#5323) üzenetére


don_peter
senior tag

Köszönöm, mind két megoldást tudom használni, de elsőre maradok az elsőnél.
Jól működik, majd mutatom mihez kellett ;)

----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----

(#5325) EQMontoya válasza don_peter (#5324) üzenetére


EQMontoya
veterán

Egyébként a második a gyorsabb. :)

Same rules apply!

(#5326) don_peter válasza EQMontoya (#5325) üzenetére


don_peter
senior tag

Igen tudom, használtam már ezt a táblás módszert.
Van erőforrás bőven szóval az első most jobb nekem..

----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----

(#5327) don_peter


don_peter
senior tag

Ahogy ígértem, ehhez a kis projektemhez kellett a segítség.
DPTP System - SMD RGB Bináris óra
Mindig ügyeskedek valamit :D

----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----

(#5328) axioma válasza don_peter (#5327) üzenetére


axioma
veterán

Ez is BCD? En ugy vadasztam egy olyanra, ami nem BCD hanem 24-60-60, marmint karoraban, de semmi normalis nem volt, most androidon van egy binaris ora widgetem, ott is felturtam vagy 20-at mire lett egy normalis ami ledumalhato a bcd kijelzesrol... (csak ne'mileg arnyalja a kepet, hogy a statuszsorban meg ugyis ott az info arab szamokkal). En mondjuk nem vagyok hw-kozeli hogy magamnak barkacsoljak.

(#5329) don_peter válasza axioma (#5328) üzenetére


don_peter
senior tag

Igen.
Nem értem, mi az hogy vadászni kellett neked a 24-60-60-ra?
A bináris órának az a lényege, hogy binárisan mutassa az időt, nem értem ezt a dolgot most.
Amúgy se-percig nem tartana normál decimális órát készíteni.
Egy LCD kijelzőre vagy 7szegmenses kijelzőre, vagy akár egy matrix LED kijelzőre..

[ Szerkesztve ]

----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----

(#5330) Jester01 válasza don_peter (#5329) üzenetére


Jester01
veterán

A te változatod is a tízes számrendszerbeli számjegyeket alakítja binárissá, vagyis BCD. A 35 másodpercet 3 és 5 formában mutatod, 2x4 biten (0011 1001). Neki meg gondolom egy 6 bites tiszta bináris kellett, ami a 35-öt 35-nek mutatja (100011)

Jester

(#5331) axioma válasza Jester01 (#5330) üzenetére


axioma
veterán

Igen, igy ertettem, bocs azt hittem ha ennyire lebontom akkor meg sertoen tulmagyarazas lesz belole...

(#5332) don_peter válasza Jester01 (#5330) üzenetére


don_peter
senior tag

Ja értem, akkor 3 oszlopból mutatható lenne az óra, perc. és másodperc.
A baj azzal csak az, hogy igen nehéz lenne megállapítani, hogy mennyi rajta az idő.
A 4bit-es sokkal könnyebb.
Persze megoldható lenne a dolog, ha erre volna igény, nem jelent gondot.

ui: szarakodott a szerver, kb egy 20 perccel előbb akartam reagálni...

[ Szerkesztve ]

----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----

(#5333) axioma válasza don_peter (#5332) üzenetére


axioma
veterán

Az benne a kihivas :) [Amugy 2048 tok jo erre, fejbol toljak a 2-hatvanyokat a gyerekek is.]

(#5334) EQMontoya válasza axioma (#5333) üzenetére


EQMontoya
veterán

Azért azt illik is, ha valaki programozásra adja a kobakját. :)

[ Szerkesztve ]

Same rules apply!

(#5335) kkdesign


kkdesign
senior tag

Hali!

Olyan kérdésem lenne, hogy meg lehet oldani valahogy, hogy egy 2013-as visual studioban készített ".C" project úgy fusson le a 2013-as VS-ben mint ahogy a 2010-es Visual Studio ellenőrizné, hogy hibás-e ?
azért kellene, mert egy projectünket egyetemen 2010esben javítják, de nekünk pedig 2013 van, és ne kelljen olyan embert is belevonni a programozásba akinek 10ese van. Valami fordító visszabutításra gondolok, vagy valami menüpont átállítására hogy más fordító legyen, vagy hasonló. De nem találok semmi hasznosat... :(

[ Szerkesztve ]

(#5336) bucsupeti válasza kkdesign (#5335) üzenetére


bucsupeti
senior tag

dolgozzatok 10-esben ha már abban várják a megoldást....

"Nem gond ha nem vágod a párologtatók bináris nyelvét..."

(#5337) EQMontoya válasza kkdesign (#5335) üzenetére


EQMontoya
veterán

Jáú.
Szabványos kódot kell írni, az ugyanúgy fog benne fordulni.
Btw a C compileréhez a VS-nek szerintem évek óta nem nyúltak hozzá, csak a C++-hoz. Szóval ez legyen a legkisebb baj.

Same rules apply!

(#5338) kkdesign válasza EQMontoya (#5337) üzenetére


kkdesign
senior tag

nem fut le, mert 280 hibát dob a 12-es és 350 warningot, felét tudom hogy amiatt, hogy a 12esben is még elöl kell deklarálni változókat, de jobb lenne látni a dolgokat azért.
Szívesen foglalatoskodom hogy WP 8.1re is tanulom az alkalmazásfejlesztést, aztán így muszáj hogy minimum 2013as legyen. emellé meg még a 2010es C++ t nem igazán szeretném feltenni hogy összekutyulódjon

(#5339) emvy válasza kkdesign (#5338) üzenetére


emvy
nagyúr

Miert kutyulodna ossze?

while (!sleep) sheep++;

(#5340) dabadab válasza EQMontoya (#5337) üzenetére


dabadab
titán

"Szabványos kódot kell írni"

Na jo, de melyik szabvanyhoz? :) A VS2010 C89, a VS2013 meg mar a C99 bizonyos reszeit is tamogatja (nyilvan nem az egeszet, hiszen meg csak masfel evtizedes szabvanyrol beszelunk, minek az a nagy rohanas :) )

DRM is theft

(#5341) EQMontoya válasza dabadab (#5340) üzenetére


EQMontoya
veterán

Egyetemi beadandot c89ben, kezdjuk az alapoonal. Valszeg abban is varjak.

Same rules apply!

(#5342) bandi0000


bandi0000
nagyúr

hali
Remélem nem zavartok el, lenne egy kis gondom, érettségi előtt állok ,és a karakteres kezelés nem a szívem csücske, lenne egy olyan problémám hogy, röviden bekérek egy szavat a szo[20] tömbbe, és a szó betűit kell abc sorrendbe rendezni, ezt így csináltam:
tehát char szo[20], tmb(ez lenne egy csere változó amibe eltárolok 1 betűt ideiglenesen)

for(i=strlen(szo)-1;i>0;i--)
{
for(j=0;j<i;j++)
{
if(szo[j+1]<szo[j])
{
tmb=szo[j+1];
szo[j+1]=szo[j];
szo[j]=tmb;
}
}
}
for(i=0;i<strlen(szo);i++ printf("%s\n",szo[i]);

igazából semmit nem csinál, a szót bekéri valszeg meghalhat már a for-ál is, bár eddig kiírta a szöveget változatlanul de most már azt se csinálja :D

Xbox One: bandymnc

(#5343) EQMontoya válasza bandi0000 (#5342) üzenetére


EQMontoya
veterán

Nem akarok kódot írni, mert akkor nem tanulsz belőle, de szívesen adok néhány tippet.

1, A tömböt, amibe beolvasod a karaktereket, később is módosíthatod. Nincs szükséged második tömbre.
2, Használj valami rendezést. Az egész feladat arra megy ki, hogy a kapott karaktereket valamilyen formában rendezd, és ezt add visza. Néhány példa: buborékrendezés, minimum kiválasztáos rendezés.

Buborékot nem illik használni, de az a legegyszerűbb, ha nem láttál még ilyesmit. Erre a feladatra a minimum kiválasztás szerintem teljesen oké, próbáld meg azt. Ha nem megy, írd le, meddig jutottál. :)

Same rules apply!

(#5344) bandi0000 válasza EQMontoya (#5343) üzenetére


bandi0000
nagyúr

Köszi teljesen egyértelmű és azt is csináltam, számokkal tudok buborékrendrzni de betűvel nem próbáltam soha, a bemásolt kód elvilrg az is, tehát ha ugye egyik betű nagyobb mint másik akkor cserélgesse, csak nem akar működni, ha benne hagyom a for ba a -1et akkor kidob exe hibával ha nincs benne akkor sztem átlép a foron, vagy kitörli a szöveget

Másik tömböt nem csináltam csak egy tmb karakteres változot vettem fel amibe ideiglenesen tárolom az egyes betűket

[ Szerkesztve ]

Xbox One: bandymnc

(#5345) zsambek válasza bandi0000 (#5344) üzenetére


zsambek
aktív tag

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int i, min, j; //int
char string[20]; //string
char tmp; //temp char
scanf("%s",string); //scan

//minimum selection sort

for(i = 0; i < strlen(string) -1 ; i++){
min = i;
for(j = i+1; j < strlen(string); j++){
if(string[j] < string[min])
min = j;
}
tmp = string[min];
string[min] = string[i];
string[i] = tmp;
}
printf("%s",string);
return 0;
}

[ Szerkesztve ]

(#5346) bandi0000 válasza zsambek (#5345) üzenetére


bandi0000
nagyúr

köszönöm, ez működik, csak azt szeretném tudni hogy az enyém miért nem, amit én írtam azt pont így használom számok esetén is és ott tökéletesen működik

Ahogy elnéztem a tied is hasonló bár nem teljesen

Xbox One: bandymnc

(#5347) EQMontoya válasza bandi0000 (#5346) üzenetére


EQMontoya
veterán

C-ben a karakterek 1 byteon ábrázolt szamok. Szoval ez nem lehet az oka. Írása ki egy 'a' betűt intkent, es latni fogod.

Same rules apply!

(#5348) bandi0000 válasza EQMontoya (#5347) üzenetére


bandi0000
nagyúr

ha jól értettem amit mondtál akkor meg van a hiba és köszönöm, jobb lett volna ha elölről kezdem és nem folytatgatom mert mindig belekavarodtam :D

Xbox One: bandymnc

(#5349) zsambek válasza bandi0000 (#5348) üzenetére


zsambek
aktív tag

Szia!

Azert a biztonsag kedveert ird meg most sajat magad egy masik fajta rendezessel.
Illetve nekem be szokott valni az, hogyha elakadok, vagy nem ugy mukodik, akkor rakok a kodomba printf("%c",string)-t, ami kiirja, hogy epp mivel is dolgozik.

(#5350) bandi0000 válasza zsambek (#5349) üzenetére


bandi0000
nagyúr

/*
printf("4.Feladat\n");
printf("Kerek egy szoveget:"); gets(szo); // i=4 1<0


for(i=strlen(szo)-1;i>0;i--)
{
for(j=0;j<i;j++)
{
if(szo[j+1]<szo[j])
{
tmb=szo[j+1];
szo[j+1]=szo[j];
szo[j]=tmb;
}
}
}
for(i=0;i<strlen(szo);i++)
printf("%c",szo[i]);*/

hibátlanul rendez, igazából a kiíratást csesztem el, %s-el akartam kiíratni a karaktereket nem %c-vel

de van még egy technikai kérdésem, van egy olyan feladat is hogy bekért szóból állapítsam meg hány különböző karakter van, elvileg angol ABC betűire kéne csak gondolnom, arra gondoltam, hogy felveszek egy 26 elemű tömböt for ezt mindig vizsgálja, hogy a szó mondjuk első betűje benne van e, ha nincs akkor beleírja és így tovább, csak ha ezt a tömböt felveszem, tmb[26], és nem rakok bele semmit akkor mi van? akkor is helyesen tudná vizsgálni? vagy fel kéne tölteni valami karakterrel ami biztos nincs benne?

Xbox One: bandymnc

Copyright © 2000-2024 PROHARDVER Informatikai Kft.