- Samsung Galaxy Watch7 - kötelező kör
- Motorola Razr 60 Ultra - ez a kagyló könnyen megfő
- Samsung Galaxy A53 5G - kevesebbet többért
- Netfone
- Poco F6 5G - Turbó Rudi
- Samsung Galaxy A54 - türelemjáték
- Milyen okostelefont vegyek?
- Android alkalmazások - szoftver kibeszélő topik
- Fotók, videók mobillal
- Google Pixel topik
Új hozzászólás Aktív témák
-
EQMontoya
veterán
válasz
dobragab #5679 üzenetére
Linus is csak a hírnevéből él, meg az odaszólogatós leveleiből, amúgy meg faszságot beszél régóta.
Konkrétan az egyik projekten újraírtunk pár C kódot C++-ban, és azon felül, hogy fele annyi kód lett, konkrétan gyorsabb lett, mert jobban tudta optimalizálni a fordító a több rendelkezésre álló információ miatt.
Szóval Torwalds a múltban él és a múltat nézi, így hát seggel megy a jövőbe. -
EQMontoya
veterán
válasz
maestro87 #5671 üzenetére
Van, amikor nincs ++i.
Pl, c++.ban:for(const auto& i : my_list) { ... }
A continue-ban azt szeretjük, hogy az minden nyelven ugyanúgy működik.
És hidd el, azt mindenki érti, ha pedig a ciklus közepén a ciklusváltozóhoz nyúlsz, az:
-Sokkal kevéssé érthető
-Jobb helyen arconvágnak érte, mert nagyon veszélyes.Pl.
for(int i = 0; i < valami ; ++i)
{
if(zöld(tömb[i]) && pöttyös(tömb[i])) continue;
if(sarga(tömb[i]) && !csikos(tömb[i])) continue;
//do something here...
}Sok sikert ++i-vel.
-
EQMontoya
veterán
válasz
maestro87 #5665 üzenetére
void print_primes(int * primes, int lenght)
{
for(int i = 0; i < lenght; ++i)
{
if(i<2) continue;
if(is_prime(i)) printf("%d\n", i);
}
}Így a paraméterként kapott tömb negatív elemeire le sem fut a prímtesztelés, mert ugye nincs is értelme, lehet, hogy felkészítve sincs rá.
Teccikéteni?Hú, de nehezen ment c++ nélkül
-
EQMontoya
veterán
Elég baba lett ez az új formázás.
-
EQMontoya
veterán
válasz
#36268800 #5618 üzenetére
Írjsz egy függvényt, ami megmondja egy char-ról, hogy magánhangzó-e:
#include <ctype.h>
#include <stdio.h>
static char * maganhangzok = "aeiou";
int maganhangzo(char c)
{
int i = 0;
for(; i < strlen(maganhangzok); ++i)
{
if(maganhangzok[i] == tolower(c)) return 1;
}
return 0;
}Ha ez megvan, akkor az eredeti tömbbön végigfutsz ezzel, és megnézed, hogy mennyi magánhangzód van.
Ezt követően azt szétszeded két tömbre, amit aztán használsz.
Utána pedig a feltöltésnél karbantartasz két indexet, és azokat lépteted annak függvényében, hogy a ciklusváltozód páros vagy páratlan.int i=0;
int msh_idx = 0;
int mgh_idx = 0;
for(;i<celtomb_hossza -1 ; ++i)
{
if(i%2 == 0)
{
celtomb[i] = msh_tomb[msh_idx];
msh_idx = (msh_idx + 1) % msh_tomb_hossza; //strlen?
}
else
{
celtomb[i] = mgh_tomb[mgh_idx];
mgh_idx = (mgh_idx + 1) % mgh_tomb_hossza; //strlen?
}
}
//lezaro nulla ne maradjon le! :) -
EQMontoya
veterán
-
EQMontoya
veterán
válasz
dobragab #5579 üzenetére
Nem a típustól függ, hanem az elhelyezkedéstől.
nyilván sizeof((void*)tomb) == sizeof(&tomb).Viszont két, azonos típusra mutató ptr nem feltétlen ugynaakkora. Persze x86-on nem lesz különbség, de amúgy, főleg embedded rendszerek esetén lehet. (mondjuk stack, heap és static között)
-
EQMontoya
veterán
int64_t g = 0;
do
{
int64_t wg_index = selected_wg[g];
if (wg_index >= num_workgroups)
wg_index -= num_workgroups;
source->serialised = ncmem_peek_nc (serialised, ncmem_remaining (serialised));
ncmem_flatten (source->serialised);
actor_senda (workgroups->actors[wg_index], send_msg, source, sizeof (fred_fix_source_t));
if (++g == num_selected_wg)
break;
} while (true);Csak az eleje meg a vége a lényeg.
Én röhögőgörcsöt kaptam, ilyen nincs. És van, baszd meg, benne a repoban. -
EQMontoya
veterán
válasz
alapz@j #5496 üzenetére
Jó kérdés. Ha egyszer elkúrja, beszopja.
Első éves voltam BME-n, villanyosménök jánykával jártam, hát megírtam a C prog háziját (nyugi, már elévült!). Volt egy binary file hozzá, amiben volt tesztadat, megnyitottam szögevesen. Persze volt benne 0 byte. 2 óra debuggolás után jöttem rá, hogy hülye vagyok, de megtanultam a leckét egy életre!
-
EQMontoya
veterán
válasz
mmaattee90 #5483 üzenetére
Ebből így semmit nem értek (és szerintem sokkal többet más sem), töltsd fel valahová a kódot. (pastebin-re pl.)
-
EQMontoya
veterán
válasz
dabadab #5457 üzenetére
Adjunk kis olvasnivalót a kollégának.
Ezek után lehet próbálkozni pl. gugliban, i18n és hasonló kulcsszavakkal. -
EQMontoya
veterán
válasz
Szirikee #5438 üzenetére
Csak két probléma van:
1, Nem tettél fel kérdést
2, A kódod c++, aminek inkább a c++ topikban van a helye. -
EQMontoya
veterán
-
EQMontoya
veterán
Ez ebben a formában így nem fog menni.
A scanf ignorálja a sor eleji whitespace-eket, így a \n-t is.
Ha kizárólag stringet szeretnél olvasni, akkor használj fgets-t.És a megoldás:
Csinálsz egy ÚJ buffert. (char tömb)
Beleolvasol fgets-el.
Megnézed az új buffert. Ha csak egy "\n" van benne, akkor nem adott meg semmit a user, nem használod a stringet. Ha van benne bármi más, akkor meg használod. (okosan: strlen) -
EQMontoya
veterán
-
EQMontoya
veterán
-
EQMontoya
veterán
válasz
bandi0000 #5368 üzenetére
Az a probléma, hogy amit csinálni akarsz, az shallow copy, de Neked deep copyra lenne szükséged. Most a shallow copyt is viszonylag rosszul csinálod, mert a pointered heapen van, a lokális változód pedig valszeg stacken, tehát ez így ebben a formában nem fog menni.
A megoldást az strcpy (deprecated!) illetve strncpy függvények környékén keresd.
-
EQMontoya
veterán
válasz
bandi0000 #5361 üzenetére
Írsz egy függvényt, ami paraméterként kap egy szót, és kiírja annak anagrammáit.
Felveszel egy tömböt, láncolt listát, bármit, amiben a leghosszabb _szavak indexét_ tárolod.
Elindulsz végig a paraméterként kapott szótömbbön, és ha az eddiginél hosszabb szót találsz, akkor kiüríted az indexeidet, ha egyenlő hosszúságút, akkor csak hozzáírsz.
Így a bejárás után megvan, hogy milyen hosszú a leghosszabb szó, mennyi ilyen hosszúságú van és azok hol vannak a tömbödben. Ez után már csak meg kell velük hívni a legelső függvényt. -
EQMontoya
veterán
válasz
bandi0000 #5342 üzenetére
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.
-
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)
-
EQMontoya
veterán
Do not feed the troll! Nyilvan nem gondolta komolyan.
-
EQMontoya
veterán
válasz
Pttypang #5222 üzenetére
Ejj, ha!
No, akkor okítsunk.
Először is: osztóJa!
Másodszor: szájbaszexuálnád a nevemben, aki arra nevel, hogy magyar változóneveket és függvényneveket használjatok?
Harmadszor: Optimalizáljunk:
-Ha a megadott szám kisebb, mint 1000, akkor elég a megadott számig menni. Tehát a ciklusfeltétel: i<min(n,1000). Illetve ennek is elég a feléig menni, mert különben ugyanazokat a számokat találod meg fordítva. Tehát i<=min(n,1000)/2. Azért kisebbegyenlő, mert kihasználtam gonoszul az egész osztást.
-Gondolkodjunk is: a második ciklus tök felesleges. Minden számhoz csak egy másik olyan tartozik, amivel összeadva az öszeg n lesz. Tehát, amit vizsgálnod kell: prime(i) && prime(n-i). Ezzel kész is vagy.Tehát:
for(i=1;i<=min(n,1000)/2;i++)
{
if(prime(i) && prime(n-i))
{
printf(...);
}
}No, ez már így nem is lenne rossz, most már cak a prímtesztelést kell kicsit okosítani. Maradjunk a primitív módszereknél, de ennél azért kicsit okosabban. Ha egy szám nem prím, akkor előáll két szám szorzataként. Ebből a kettőből az egyik kisebb, vagy egyenlő, mint a gyöke, tehát elég addig nézni.
Osztókat számolni tök felesleges, az első osztónál ugyanis biztosan nem lehet prím.Tehát:
for(i=2;i<=sqrt(n);i++)
{
if(!n%i) //csalok: ez akkor igaz, ha a maradékos osztás maradéka 0 - tehát osztható
{
return false; //van osztója, ami nem egy és nem önmaga
}
}
return true; //ha a gyökéig nem volt osztója, biztos prím.Máris mennyivel szebb, ugye?
-
EQMontoya
veterán
válasz
buherton #5213 üzenetére
Ebben a formában semmit, mert nem fordul le.
program.cc:6:1: error: expected unqualified-id before ‘int’
int b : 0,De ha kicseréli az ember pontosvesszőre...
Na, akkor sem fordul le, de a hibaüzi sokat elmond arra vonatkozóan, amit kérdezni akartál:program.cc:6:13: error: zero width for bit-field ‘<anonymous struct>::b’
int b : 0;De ha a b értékét 1-re módosítod ez után, akkor már egész jó a feladat.
-
EQMontoya
veterán
enum E
{
E1,
};
struct P
{
P(unsigned int x) {}
};struct A
{
P p1;
A(const P& pr): p1(pr){};
};struct B
{
A a1;
B(const A& ar): a1(ar){};
};int main()
{
A a1(P(0 ));
B b1(a1);A a2(P(E1 ));
B b2(a2);
return 0;
} -
EQMontoya
veterán
válasz
dabadab #5204 üzenetére
Func ptr-t nyilván nem, nem is arra értettem.
Azért tegyük fel, hogy legalább minimálisab objektum-orientáltan kódolunk mátrixot, és annak műveleteit. Ott simán lehet írni inline-olt gettert.Egyébként teljesen jogos, de muszáj volt beletrollkodnom. Mint láthatod, nem csak bennem merült fel.
Illetve, ha már itt észt osztok, mai c++ lecke: egy argumentumos, POT-ot váró konstruktor legyen explicit, ha lehet.
Ha nem az, akkor olyan mókásságokba futhat bele a zember fia, mint egy rossz copy-paste után leforduló bool paraméterrel meghívott függvény, mint egy saját, file system path osztályt vár paraméterül. -
EQMontoya
veterán
válasz
DrojDtroll #5181 üzenetére
Ez a kérdés hogyan merült fel?
-
EQMontoya
veterán
válasz
don_peter #5166 üzenetére
Hát józan paraszti ésszel nézve is 256byte-ot fogyaszt a lookup table, valamit egy indexelést hajtasz végre (ami ugye gyakorlatilag egy összeadás - tömb kezdetének címe+index).
Ez még egy kenyérpirítón is gyors lesz.Működés: a tömbben minden indexen az adott byte megfordítottja van, csak nyilván hexában van leírva.
Tehát pl.
tömb[1] = 0b00000001 megfordítása = 0b10000000 = 0x80.
tömb[17] = 0b00010001 megfordítása = 0b10001000 = 0x88. -
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.
-
EQMontoya
veterán
válasz
DrojDtroll #5135 üzenetére
Rakd be akkor az egész kódot, aztán átnézem.
-
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. -
EQMontoya
veterán
válasz
peter9228 #5127 üzenetére
No offense, mert gyanítom, hogy nem a Te ötleted, de honnan van ez az elmés standard, hogy magyar függvényneveket használjatok?
A mennyiségi problémára (és performanciára is jótékony hatással - jelen esetben nyilván csak teoretikusan):
Ne inteket olvass be, hanem sorokat (char*), majd írj egy függvényt, ami azokat parseolja - függvényparaméter egy int*, és azt szépen feltölti, return value pedig, hogy mennyi intet sikerült beolvasni.Ha ez bármelyik sorban nem egyezik az elvárttal, vagy az elvártnál kevesebb sort sikerült beolvasni, akkor hiba történt.
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Milyen program, ami...?
- Béta iOS-t használók topikja
- Vezetékes FEJhallgatók
- Autós topik
- Kertészet, mezőgazdaság topik
- Kevesebb dolgozó kell az Amazonnak, AI veszi át a rutinfeladatokat
- Bambu Lab 3D nyomtatók
- Nintendo Switch 2
- Kormányok / autós szimulátorok topikja
- Milyen légkondit a lakásba?
- További aktív témák...
- LG UltraGear 27GP850 (NANO IPS/2K/180hz)
- Ahh! Dell Latitude 7430 "Kis Gamer" Üzleti Profi Ultrabook 14" -50% i5-1245U 16/512 FHD IRIS Xe
- LG UltraGear 27GR95QE-B (2K/240hz/0.03ms)
- BenQ MOBIUZ EX2710U (4K/IPS/144hz)
- Core I9 ERŐMŰ Lenovo P1 Gen2 (8mag/16 szál 32Gb DDR4 1Tb SSD 4Gb Nvidia) laptopom eladó!!!
- Dell P2419H P2419Hc Full HD LED IPS 24" + P2719H 27" LCD monitor (vékony keretes)
- Bomba ár! Dell Inspiron 7400 - i7-1165G7 I 8GB I 512SSD I 14,5" 2K I HDMI I Cam I W11 I Garancia!
- AKCIÓ! HP USB C G5 Essential (5TW10AA) dokkoló hibátlan működéssel garanciával
- Honor X6b 128GB Kártyafüggetlen 1Év Garanciával
- Már csak 12 db 5G ROUTER! - Telenor 5G Indoor WiFi Router (FA7550) + töltő (bolti áruk 100.000Ft)
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest