Új hozzászólás Aktív témák
-
Zollee
tag
Újra itt, újabb kérdéssel.
Fájlkezelnék. Az fscanf és az fprintf működését értem, használni is tudom. (vagyis műxik a program vele
Viszont a scanf függvénytől óva intenek az oktatóim (és korábban ebben a PH témában is mások) és azt javasolják használjam inkább az getc és getchar-t. Most épp a getchar kell, viszont fájlkezeléshez. Rágoogliztam, de mindenféle érdekességet hoz ki nekem és nem tudom kiszűrni hogy is kéne használjam.Az fscanf szintaxisa 2 karakter beolvasására: fscanf(bemeneti fájl neve, "%c %c", &a, &b)
A getchar-ra létezik fájlkezeléshez az fgetchar függvény, viszont azt nem értem hogy ő honnan tudja majd melyik a bemeneti fájlom, mert találtam minden féle programot, amiben a google megtalálta, de ahány találat, annyiféleképp van használva. Ezért megköszönném, ha valaki ismerné a sima, egyszerű, hétköznapi használatát, és le tudná irni nekem.
-
Zollee
tag
válasz
Votyesz13 #1303 üzenetére
String-hez sajnos én is hal vagyok.
Nekem is van 2 string-es feladatom, az egyik a korábban már emlitett ASCII kód alapján történő karakter számlálás. (kis betűk, nagy betűk, számok). Az elv megvan ami alapján csináljam, de azt nem tudom hogy értessem meg vele, hogy ASCII kódként nézzen az általam megadott számra. (pl 97 az ugye a kis "a"). Szóval ilyen problémáim nekem is vannak, küzdök vele most is, mert függvényt nem használhatok hozzá, fapadosan kell megoldanom. -
Zollee
tag
válasz
Votyesz13 #1294 üzenetére
Bekérsz egy értéket. Mivel a legnagyobb érméd a 10-es, ezzel elosztod, majd az egész részét eltárolod egy változóban. A maradékot tovább osztogatod (az 5-össel, majd a 2-essel) úgy ahogy a 10-zel is tetted, és ezeknek az egész részeit is hozzá adod az előbbi "számoló" változódhoz. Majd a számoló változód értékét kiiratod, hisz az érmék darabszáma ebben lesz.
-
Zollee
tag
válasz
Jester01 #1274 üzenetére
Mondasz vmit.. Mikor próbálgattam, előfordult, hogy a 2 bekérésből csak az 1. esetben várta meg míg beadok neki egy értéket, a másikat már önszántából kitöltötte, mintha ő jobban tudná.
Most nem otthon vagyok, de amint előttem lesz a feladat, kipróbálom. Remélem menni fog. -
Zollee
tag
Próbáltam simán összehasonlítani (if (bastya == gyalog)...) de nem jó eredményt kapok. Valamiért soha nem kapom vissza azt, hogy a bástya üti a gyalogot. Próbáltam először csak számokkal, azzal ment. Próbáltam számot és betűt egyszerre vagy kapcsolattal, akkor már nem ment. Próbáltam aztán csak karaktert, akkor sem ment. Ezért próbálkoztam a karakter összehasonlító függvénnyel. Még mindig ott tartok hogy nem akarja az igazságot függvény nélkül sem, függvénnyel sem.
-
Zollee
tag
Nézegetem őket én is, van egy prog könyvem, de nem igazán taglalja a használatukat.
Az strcmp függvény sem akar menni valamiért. Sokféleképp próbáltam már alakítgatni, de nem ment, most épp szegmens hibát ír. Ez azért ciki, mert az általad írt függvényeket is elvileg ugyanúgy kell majd használni a másik feladatomnál.Itt az strcmp-s progi, ami nem akar menni:
(lényegében az a feladat, hogy meg kell adni a bástya és a gyalog pozícióját és el kell dönteni hogy üti-e a bástya a gyalogot? Én úgy gondoltam megvalósítani ezt, hogy mivel a bástya csak vagy vízszintesen vagy függőlegesen mozoghat, azt kell eldönteni, hogy a két bekért pozíció betűje egyezik-e a 2 bábunál, vagy a 2 számos tagja egyezik-e. Ezzel eldönthető, hogy ugyanabban az oszlopban van-e vagy ugyanabban a sorban. Ha a 2 közül legalább az egyik igen, akkor üti, ha nem akkor nem. Ehhez kellene a karakter összehasonlító függvény.)#include <stdio.h>
#include <string.h>int strcmp (const char *s, const char *t)
{
if (*s == *t)
return 0;
else
{
printf("WTF? \n");
}
}void sakk ()
{
char bastya [3];
char gyalog [3];printf("Kerem a bastya poziciojat: ");
scanf("%c %c", &bastya[1], &bastya[2]);
printf("Kerem a gyalog poziciojat: ");
scanf("%c %c", &gyalog[1], &gyalog[2]);if ((strcmp(bastya[1], gyalog[1]) ==0) || (strcmp(bastya[2], gyalog[2]) ==0))
printf("A bastya uti a gyalogot.\n");
else
{
printf("A bastya nem uti a gyalogot.\n");
}
}int main ()
{
sakk();
} -
Zollee
tag
válasz
Votyesz13 #1256 üzenetére
Hy!
Ha fapados módszereket írok, elnézést, de mivel most kezdted a programozást, nem gondolnám hogy ez probléma lenne, nekem is írták, hogy rá kell érezzek. Igazuk volt, az önálló munka és az ilyen kezdő kódokból tanul az ember, utána lehet ügyeskedni.
1, A páros számok ugye mind oszthatók 2-vel. Egy if-else szerkezettel sima ügy.
3, Szintén if-ekkel megoldható. A számokat kell összehasonlítani.
4, Százalék számításra visszavezethető. Képlet a wikipedia-n. De egy szerűbb, ha csinálsz egy i segédváltozót, majd az adatok bekérése után értékének megadod a max * 0.5-öt. Ez után a max-ot elosztod 100-zal, a kapott értéket beszorzod az aktuális pontszámmal, majd if-fel megírod, hogy ha a kapott érték nagyobb vagy egyenlő mint a korábban definiált i változód, akkor átment, egyébként nem.
5, Én switch-csel oldanám meg. Mivel 5 osztályzatod van, 5 case-re lesz benne szükséged. A rossz érték kezelésére pedig a switch-nek van default ága. Ott csak ki kell iratnod hogy rossz értéket adott meg a paraszt.
A 2-es feladathoz hasonló nekem is van, azt sajnos én sem tudom.
Ezek a sztring műveletek nekem sem mennek még.
Nekem az a feladat, hogy bekérsz egy szöveget, utána kiíratod hogy mennyi kis betű, mennyi nagy betű és mennyi szám van benne.
Jah meg egy másik feladatomban most karakter összehasonlítással szenvedek, nem tudom működésre bírni az strcmp függvényt.
Ha végképp nem boldogulok lehet visszatérek és én is segítséget kérek. -
Zollee
tag
Hy!
Újra itt és újabb kérdéssel.
Szorgalmi feladataim egyike a legnagyobb közös osztó kiszámolása. Utána néztem, a Wikipedia szerint az Euklideszi algoritmus egy jó megoldás erre a problémára. Na igen, én ezt megoldottam úgy, ahogy én értelmeztem az átalakitást, le is fordul, de rossz értékeket ad vissza. Többször átnéztem a képletet, de nem tudok rájönni hol a hiba. Remélem valaki nálam okosabb itt rá tud jönni.A progi:
#include<stdio.h>
void lnko()
{
int maradek, szam1, szam2;printf("Kerem a szamokat: ");
scanf("%d% %d", &szam1, &szam2);while (szam2 !=0)
{
maradek = szam1%szam2;
szam1=szam2;
szam2=maradek;
}
printf(" A szamok legnagyobb kozos osztoja: %d\n", szam1);
}int main()
{
lnko();
} -
Zollee
tag
válasz
Lortech #1221 üzenetére
Igen, a return-t alkalmaztam egy másik feladatomnál is, csak itt a felszin mellett a térfogatot is ki kell majd számolni és azt mondták, hogy a void-ot használjam a feladat megoldására. A return csak 1 értéket ad vissza, igy egyszerre a 2 külön képletre nem jó. Azért irtam le csak az egyiket a c kódba, mert egyszerre csak 1 problémára akartam koncentrálni, ha megy jöhet a másik is.
Vagy akkor mégsem void a megoldás kulcsa? -
Zollee
tag
Hy!
Most kezdtem a programozást és már elakadtam az elején.
A void függvénnyel próbálkozom. Függvénnyel (void) kell megvalósitani a henger felszinének kiszámitását. Valamiért nem jó..#include<stdio.h>
#define PI 3.14159265void A(float r, float h)
{
float felsz;
felsz=2*PI*r*(r+h);
}int main()
{
float sugar, magassag, felszin;printf("Add meg a henger alapkörének sugarát: \n");
scanf("%f", &sugar);
printf("Add meg a henger magasságát: \n");
scanf("%f", &magassag);
felszin=A(sugar, magassag);
printf("A henger felszine: %f \n", felszin);
}21. sor: void value not ignored as it ought to be
Mi lehet a baj
Ú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!
- PlayStation 4/5 kontroller analóg cseréje HALL TMR érzékelősre, 1 év garancia!!! Nincs többé drift!!
- PlayStation 5/4 kontroller analóg cseréje HALL TMR érzékelősre, 1 év garancia!!! Nincs többé drift!!
- XBOX ONE/Series kontroller analóg cseréje HALL TMR érzékelősre, 1 év garancia!!! Nincs többé drift!!
- XBOX Series S 512GB, 6 hó garanciával Bp-i üzletből eladó!
- Dell Latitude 5400 / i5-8365u / 8Gb DDR4 / 256Gb SSD / FHD IPS / Excellent akku
- HP Omen - 27" IPS - UHD 4K - 144Hz 1ms - NVIDIA G-Sync - FreeSync - HDR 400 - USB-C - KVM Switch
- Akciós dokkolók, Lenovo Legion Pro 7 RTX 4080/4090 laptopok, licencek, antivírusok
- Bomba ár! Lenovo ThinkPad P43s - i7-8G I 8GB I 256GB SSD I Nvidia I 14" FHD I Cam I W10 I Garancia!
- Nintendo Switch bazár (Okosított Nintendo Switch konzolok, játékok, tartozékok)
- Telefon felvásárlás!! Xiaomi Redmi Note 13, Xiaomi Redmi Note 13 Pro, Xiaomi Redmi Note 13 Pro+
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged