Hirdetés
- jakra: Retro gyujtemenyem (cloud synced for safety...)
- laskr99: Processzor és videokártya szilícium mag fotók újratöltve!
- Pötyi: 4. RETRO KONZOL ÉS SZÁMÍTÓGÉP BÖRZE - '25. november 16.
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Magga: PLEX: multimédia az egész lakásban
- Mr Dini: Mindent a StreamSharkról!
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- eBay-es kütyük kis pénzért
- gban: Ingyen kellene, de tegnapra
Új hozzászólás Aktív témák
-
skylaner
senior tag
válasz
stranger28
#4193
üzenetére
Szia!
Én annyit tennék hozzá, hogy mivel 0-tól 100-ig fogsz számokat tárolni így felesleges memória pazarlás int-et használni.
unsigned char *palyak;Illetve a többi változó is lehetne char/unsigned char.
-
Jester01
veterán
válasz
stranger28
#4198
üzenetére
Szerintem alapvetően nincs baj az int*-al, bár tény, hogy C-ben ilyen nincs de szerintem olvashatóbb. Személy szerint szigorúan követem a soronként csak 1 változó elvet, így a "hová tartozik a *" probléma nem érint.
Ja és még a beolvasásod nem bolondbiztos. Igaz, azt C-ben nehéz is csinálni, de első körben legalább a scanf visszatérési értékét ajánlott ellenőrizni.
-
buherton
őstag
válasz
stranger28
#4193
üzenetére
Kiegészítés (#4195) dabadab hsz-re.
1. feleslegesek a typecast-ok és a jövőben kerüld ezeket, mert könnyen kerülhetsz olyan helyzetbe, amikor jön a fej vakarás, mert nem fut a kód, mint például:
void foo(long *bar)
{
*bar = 23424234;
}
int main(void)
{
char bar;
foo(&bar);
return 0;
}2. formázás: ez az adott sor végére rakni a { nem C-szerű formázás, hanem tán a Java-ból jön, és ajánlott ott használni. Továbbá próbáld kialakítani a saját stílusod, és tartsd magad ahhoz, mert könnyebb neked és másnak is olvasni a kódod.
int* foo; helyett int *foo; mert ebből is lehetnek gondok, mint int* foo, bar; és két pointer helyett lesz egy pointer és egy változó, és nincs olyan típus, hogy int pointer, hanem int-re mutató pointer van csak.
3. óvatosan az ilyenekkel:
for(i=0;i<n;i++)
if (palyak[i]==0)
{
nemsi_index[a]=i;
a++;
}Ugyanis nem feltétlenül portable a kód. Sajnos nem mindegyik fogadja el így ezt a formát. Az ilyen formával már kevésbé lehet gond:
for(...)
{
if(...)
...;
...;
} -
válasz
stranger28
#4193
üzenetére
Par dolog:
0. Az egesz cuccban egy darab komment sincs, pedig azt erdemes gyakorolni, mert kulon tudomany.
1. "magic value"-ket a kodba irni nem tul jo gyakorlat, jobb konstanskent kezelni oket, illetve C-ben makrokent, szoval "#define MIN100_NOT_FOUND -1"
2. A free()-ket erdemes pont forditott sorrendben meghivni, mint a malloc()-ot, egyreszt, mert ugy maradnak meg szepen a blokkok, masreszt meg lehet, hogy egy kesobb malloc()-olt strukturaban egy pointer egy elozoleg lefoglalt memoriateruletre mutat - es ha az elso free()-zed, a masodikrol meg azt gondolod, hogy az meg ervenyes adatokat tartalmaz, abbol baj lesz.
3. A valtozoneveket (konstansokat, makrokat, file-okat, kommenteket) angolul tessek irni.
4. A nemsi_index teljesen felesleges. Lehetne mondani, hogy azert van igy, hogy meglegyen a funkcionalis tagolas (beolvasas, feldolgozas, kiiras), de ez egyebkent sincs meg (amire teljesen elfogadhato magyarazat, hogy igy hatekonyabb a kod - leszamitva ezt a franya nemsi_indexet).
5. Ha megis a tagolas mellett dontenel, akkor erdemes lenne azt harom fuggvenybe kirakni.
-
greenity
senior tag
válasz
stranger28
#4193
üzenetére
Nekem tetszik, nálam elég úri lenne

-
Jester01
veterán
válasz
stranger28
#4077
üzenetére
#include <stdio.h>
#include <string.h>
int main()
{
unsigned char stats['z' - 'a' + 1] = {0, };
int duplicate = 0;
int word = 1;
int c;
while((c = getchar()) != EOF) {
if (c == '\n') {
if (duplicate == 0) break;
memset(stats, 0, sizeof stats);
duplicate = 0;
word = 1;
continue;
}
if (c == ' ') {
word = 1;
continue;
}
if (word == 0) continue;
word = 0;
c -= 'a';
if (c < 0 || c >= sizeof stats) continue;
duplicate = (stats[ c ]++ > 0);
}
return 0;
}Hosszt nem ellenőriz, csak angol kisbetűs szavak számítanak és csak szóköz után.
-
Jester01
veterán
válasz
stranger28
#4075
üzenetére
Aki ezt a specifikációt írta azt fel kellene pofozni
![;]](//cdn.rios.hu/dl/s/v1.gif)
Mi az, hogy stringeket olvas? Sorokat, gondolom, aminek a végén valamilyen soremelés van.
Mit csináljon, ha több mint 30 karakter egy sor?
Hogyan definiáljuk a szavakat? Írásjelekkel mi a helyzet?
Milyen ábécét használjunk - magyart vagy angolt? Előbbi esetén mi legyen a kettősbetűkkel? Kisbetűk és nagybetűk egyformák?Hirtelen csak ennyi problémát látok ami nélkül tulajdonképpen el sem lehet kezdeni.
Ú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!
- Soundbar, soundplate, hangprojektor
- Lexus, Toyota topik
- Milyen processzort vegyek?
- Kerékpárosok, bringások ide!
- Milyen monitort vegyek?
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Napelem
- Újra nekifeszül az asztali konzolok piacának a Valve
- jakra: Retro gyujtemenyem (cloud synced for safety...)
- laskr99: Processzor és videokártya szilícium mag fotók újratöltve!
- További aktív témák...
- VADIÚJ Bontatlan! Honor 400 Lite 8/256 AMOLED 120Hz Velvet Grey, Dual SIM 2év gar
- AZONNALI SZÁLLÍTÁSSAL Eladó Windows 8 / 8.1 Pro
- Telefon Felvásárlás!! iPhone 14/iPhone 14 Plus/iPhone 14 Pro/iPhone 14 Pro Max
- DELL PowerEdge R740 rack szerver - 2xGold 6130 (16c/32t, 2.1/3.7GHz), 64GB RAM, 10Gbit HBA330, áfás
- BESZÁMÍTÁS! ASROCK B550M R5 5600X 32GB DDR4 512GB SSD RTX 3060 Ti 8GB Zalman Z1 Plus CM 750W
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

![;]](http://cdn.rios.hu/dl/s/v1.gif)

