Hirdetés
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- sziku69: Szólánc.
- GoodSpeed: Nem vénnek való vidék - Berettyóújfalu
- eBay-es kütyük kis pénzért
- Lalikiraly: Astra kalandok @ Negyedik rész
- Meggyi001: Kórházi ellátás: kuka vagy finom?
- koxx: Bloons TD5 - Tower Defense játék
- sh4d0w: StarWars: Felismerés
- Brogyi: CTEK akkumulátor töltő és másolatai
Új hozzászólás Aktív témák
-
-
válasz
cellpeti
#723
üzenetére
Hali!
Maximálisan egyetértek Veled, hogy nem a tanárok hibája, hanem az oktatási rendszerünké.
"A tanároktól(tisztelet a kivételnek) nem kapnak türelmet az emberkék..."
Elnézést ha ezzel a mondattal félreérthető voltam, itt arra céloztam, hogy jómagam is(sajnos) ismerek olyan "tanárokat", akik egyszerűen pályát tévesztettek, alkalmatlanok a tanítói szakmára. Az "igazi" tanárokat(ezek szerint mint anyukád is) maximálisan tisztelem, mert lelkiismeretesen végzik a munkájukat, holott nekik is lehet mindenféle gondjuk-bajuk (anyagi, magánéleti, egészségügyi stb), de ennek ellenére erőn felül teljesítve, a diákok érdekeit szem előtt tartva, tisztességesen és elkötelezetten végzik a munkájukat.Fire.
-
válasz
cellpeti
#713
üzenetére
Hali!
Én magam is, amikor segítek, akkor CodeBlocks-ban írok, teljsen free, nagyon jó fejlesztőkörnyezet. Azonban kiskatus meg Borland Turbo C++ 4.0-ba.
Na ezt nem tudom felrakni x64 vista alá sajnos. Viszont így látatlanba, meg nem tudom, hogy hogy vannak beállítva a könyvtárak benne. valószínű, hogy az exe nem oda generálódik, ahol a forrásfájlok vannak.Fire.
-
-
Steve-S
tag
válasz
cellpeti
#676
üzenetére
Hi! Itt az én verzióm, bár lehet nem a legtökéletesebb, nem vagyok valami nagy prof C-ből, de működik! Bár lehet már kicsit későn postolom.
Azért remélem segítettem valamit.#include <stdio.h>
int getline(char t[],int lim)
{
int i;
char c;
for(i=0; i<lim && (c=getchar())!=EOF && c!='\n'; i++)
t[i]=c;
return i;
}
main()
{
int s, i, osszeg, szamok;
char tomb[20];
printf("Adj meg egy 6 szamjegyu kodot: ");
while((s=getline(tomb,20))!=0)
{
osszeg=0;
szamok=0;
if(s>0 && s!=6)
{
printf("A kod nem 6 szambol all!\n");
printf("Adj meg egy 6 szamjegyu kodot: ");
continue;
}
if(s==6)
{
for(i=0; i<6; i++)
if(tomb[i]>='0' && tomb[i]<='9')
szamok++;
}
if(s==6 && szamok!=6)
{
printf("Nem jo a kod, csak szamokat tartalmazhat!\n");
printf("Adj meg egy 6 szamjegyu kodot: ");
continue;
}
if(szamok==6)
{
for(i=0; i<5; i++)
osszeg+=tomb[i]-'0';
}
if((osszeg%6)==(tomb[5]-'0'))
{
printf("Jo a kod!\n");
fflush(stdin);
printf("Adj meg egy 6 szamjegyu kodot: ");
}
else
{
printf("Nem jo a kod!\n");
fflush(stdin);
printf("Adj meg egy 6 szamjegyu kodot: ");
}
}
} -
wiggen123
senior tag
válasz
cellpeti
#672
üzenetére
az isalnum a ctype.h ansi c könyvtárban van, ez része minden c implementációnak, szóval nyugodtan használhatod. Itt egy jó referencia: [link]
A feladatodhoz az én verzióm: beolvasni használd a gets() függvényt, az char*-ot ad vissza. menj végig a karaktertömbön amíg össze kell adni őket, vedd ki őket egy 2 hosszú sztringbe, 0. karakter a számjegy 2. a \0, használd az atoi konverziós függvényt hogy számmá alakítsd, így már össze tudod adni őket. A ciklusból kilépve az utolsó számjegyet ugyanígy számmá alakíthatod és ellenőrizheted.
ZH-n érdemes megkérdezni, hogy feltételezheted e, hogy helyesek az input adatok. Tipikusan nem arra kíváncsiak még akkor, hogy ki tudod e szűrni az összes kivételes helyzetet, hanem, hogy az alapokkal tisztába vagy e.
-
Benmartin
senior tag
válasz
cellpeti
#667
üzenetére
valami ilyesmi:
#include <stdio.h>
int getline()
{
int sum = 0, i = 0, c, hatodik;
while((c = getchar()) && isalnum(c))
{
sum += c - '0';
hatodik = c - '0';
i++;
}
sum -= hatodik;
if(i != 6 || sum % 6 != hatodik) return 0;
return 1;
}
int main()
{
if(getline())
{
puts("Helyes!");
} else puts("Hibas");
getchar();
return 0;
} -
Jester01
veterán
válasz
cellpeti
#664
üzenetére
Pl. kiveszed a 0 lezárást a getline függvényből, mert úgysem kell. Ugyanakkor az i növelését beleteszed a while ciklusba is. Így tehát a függvény legfeljebb 6 karaktert ír a tömbbe (ezzel a túlcsordulás megoldva) és a visszatérési érték alapján pedig a main-ben ellenőrizheted a hosszt (nem kell strlen).
-
Jester01
veterán
válasz
cellpeti
#658
üzenetére
Igen, a bekért számjegyek tömbjén megy végig, összedva őket. Azért nem <= kell mert a tömbök indexelése 0-val kezdődik. Tehát az első 5 számjegy a 0,1,2,3,4 indexeken van.
A string hosszát valóban az strlen adja meg, de mivel a te beolvasó függvényed eleve nem ad vissza csak 6 karaktert, ezért ezzel azt nem tudod kiszűrni ha többet írnak be. Ehhez a beolvasásnál kellene ellenőrizni, hogy pontosan 6 karaktert írtak-e be.
MOD: sőt, mivel egy lezáró 0 byteot is tesz, rögtön túl is címzi a 6 elemű tömböt. Uppsz. -
Jester01
veterán
válasz
cellpeti
#656
üzenetére
Azok azért vannak, hogy megkapd a számjegyek értékét. A 0 ascii kódja (ahogy a stringben van) ugyanis 48 (másnéven '0'). Szerencsére innen sorban jön a többi 9 számjegy, tehát sima kivonással meg lehet kapni a számértéket.
Egyébként a string hosszának ellenőrzése még nincs meg.
-
doc
nagyúr
válasz
cellpeti
#559
üzenetére
kezdesnek nem rossz

de a getchar az getchar(), mivel fuggvenyt hivsz meg
a while magjaba meg be kell rakni az ellenorzest, ami a t, s vagy u erteket noveli, annak megfeleloen hogy mi volt a beolvasott karakter
persze ahhoz, hogy ellenorizni tudd, be kell tenni egy valtozoba az erteket -
doc
nagyúr
válasz
cellpeti
#554
üzenetére
1) nem valaszoltal a kerdesre
2) a stilusodon nem artana csiszolni
3) most megis hogy varod el hogy a kod ismerete nelkul megmondja valaki, hogy adott valtozot mire hasznal?
4) ebben az esetben viszont NAGYON minimalis gondolkodassal teljesen egyertelmu a valasz
5) ha a konyv olvasasa soran ennyire nincs lovesed sem a feladatok megoldasarol, akkor olvasd el meg egyszer az adott fejezetet... -
válasz
cellpeti
#538
üzenetére
Hali!
Gyorsan megcsináltam(több megoldás is létezik persze), mielött ellépek itthonról. Ha valami nem tiszta írj. Késő este vagy holnap leszek majd.
(mivel ez csak példa, nem foglalkoztam azzal hogy kitudja mekkora számot lehessen beírni, ezért 2 gigánál nagyobbat ne írj be, mert hibásan fog működni. Bár kipróbálhatod
)#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define C_Y 14
int cimlet[C_Y] = {20000,10000,5000,2000,1000,500,200,100,50,20,10,5,2,1};
int hanyszor[C_Y] = {0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0,0,0};
int main()
{
long int i, cash;
char money[255];
printf("Enter money: ");
if (!strlen(gets(money))) {
printf("\n\nMoney not found...EXIT");
return -1;
}
printf("\n\n");
for (i=0;i<strlen(money);i++)
if(money[i]<'0' || money[i]>'9') {
printf("Is NAN [Not A Number]...\nEXIT");
return -1;
}
cash=atoi(money);
for (i=0;i<C_Y;i++) {
hanyszor[i]=cash / cimlet[i];
cash-=hanyszor[i]*cimlet[i];
if (hanyszor[i]) printf("%5d db\t %d\n",hanyszor[i],cimlet[i]);
}
return 0;
}Fire.
-
-
PazsitZ
addikt
válasz
cellpeti
#527
üzenetére
Azért írtam oda, hogy "letárolod a címletet"
Bár osztással tényleg gyorsabb.
Megtaláltam egy régi pascalos forráskódom.
Ez bankautomata és csak pár értékes, de hátha segít:write('K‚rt ”sszeg:');readln(be);
x:=be mod 1000;
if x<=0 then begin
y:=(be div 1000);
if y mod 10>=0 then begin
ossz10:=y div 10;
be:=y mod 10;
end;
if y mod 5>=0 then begin
ossz5:=be div 5;
y:=be mod 5;
end;
if y mod 1>=0 then begin
ossz1:=y div 1;
be:=y mod 5;
end;
writeln('kiadand˘ cˇmletek:');
writeln('10000ft-os cˇmlet:',ossz10:8:0);
writeln('5000ft-os cˇmlet:',ossz5:8:0);
writeln('1000ft-os cˇmlet:',ossz1:8:0);
end
else begin
writeln('Minimum 1000,5000,10000ft-os cˇmletek vehet‹ ki');
end; -
PazsitZ
addikt
válasz
cellpeti
#525
üzenetére
Haladsz a legnagyobb címlettől a legkisebbig. Ezeket berakhatod egy tömbbe. [20000,10000,5000...]
Ha az összeg nagyobb, mint a címlet: kivonod a címletet a pénzösszegből, letároloda címletet majd újravizsgálod.
Ha kisebb: kisebb címletre lépsz.
Ha a pénzösszeg nulla kiírod a letárolt címleteket.Szvsz ha aktualizálni akarod beolvasásnál szabd ki, hogy 5-re vagy nullára végződjön a pénzösszeg.
Ú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!
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Garancia kérdés, fogyasztóvédelem
- Miskolc és környéke adok-veszek-beszélgetek
- OLED TV topic
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Milyen házat vegyek?
- 3D nyomtatás
- Bambu Lab 3D nyomtatók
- Honor 200 - kétszázért pont jó lenne
- További aktív témák...
- Ryzen 7 5800X3D + Strix B550-A + 32GB Corsair Dominator + RX 7900 XTX NITRO+ 24G + 1200W 80+ plat
- HP ZBook Fury G8 - RTX A3000 - ajándék dokkolóval és laptop hűtővel
- Heatkiller Tube 100 D5 - full extra
- Gigabyte AORUS 17 - i7-12700H - RTX 3070 Ti - 32GB RAM - 1TB M2 SSD -FHD 360H- eredeti csomagolásban
- DDC Pumpa kiegészítők: top, bottom (hűtőborda), tartály,
- TELJES KÖRŰ IT BESZERZÉS
- ÁRGARANCIA! Épített KomPhone Ultra 9 285K 64GB RAM RTX 5090 32GB GAMER PC termékbeszámítással
- Samsung Galaxy S23 Ultra 256GB, Kártyafüggetlen, 1 Év Garanciával
- GYÖNYÖRŰ iPhone 11 64GB White -1 ÉV GARANCIA - Kártyafüggetlen, MS3871, 100% Akkumulátor
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő

Azért remélem segítettem valamit.




)

