- gban: Ingyen kellene, de tegnapra
- MasterDeeJay: Alacsony fogyasztású házi szerver a korábbi projektekből összeépítve
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- Argos: Adjátok vissza a netet! - szeretnék elaludni!
- Geri Bátyó: Megint tahó voltam – SZEMÉLYISÉGFEJLŐDÉS
- sziku69: Fűzzük össze a szavakat :)
- btz: Internet fejlesztés országosan!
- eBay-es kütyük kis pénzért
- bambano: Bambanő háza tája
Új hozzászólás Aktív témák
-
Karma
félisten
-
doc
nagyúr
válasz
Ereshkigal #3998 üzenetére
a Qt-hez a legfontosabb az OOP gondolkodasmod, es nem art ha van mar tapasztalatod C++ -szal
-
-
doc
nagyúr
válasz
Ereshkigal #3996 üzenetére
nem kell qt5, a 4.x tokeletes lesz
temetni nem kell, a qml az teljesen mas, a Qt tokeletes a C++ melle
a GTK-nak mar az alapotlete is borzalmasan elhibazott, a megvalositas meg csak ratesz egy lapattal, raadasul mostanra mar az egesz felulet nagyon elavult -
Köszi. Korábban olvastam már, mennyire szereted.
QT5-tel kapcsolatban olvastam ilyesmit, hogy a natív C++-t kezdi egyre inkább felváltani a QML, és egyesek már temetik is az egész toolkitet.(Mondjuk nem tudom, mire akarnak váltani.
Felraknám, de úgy látom, a 5-höz nincs még MinGW-s verzió. :/
A GTK+ miért gáz ennyire? (Azon túl, hogy a Windows port "kicsit" le van maradva.) -
doc
nagyúr
válasz
Ereshkigal #3989 üzenetére
a GTK+ totalis katasztrofa, mar maga az otlet is borzalom, de ha nem C++ hanem sima C a valasztott nyelv, akkor muszaj lesz...
a wxwidgets idejetmult, onmagaval sem kompatibilis
a Qt sok pluszt hoz be, ami tulmutat a C++-on, cserebe platformfuggetlen, atlathato, remek a doksija, tud OpenGL-t is ha kelltalan nem meglepo hogy en a Qt-t ajanlom
-
Sziasztok!
Viszonylag egyszerű grafikus felületet szeretnék készíteni a szimulációimhoz (c/c++, windows), lehetőleg minél kevesebb kódrészlet át-/újraírásával. Nem akarok nagyon elmerülni a témában, de szükségessé vált, hogy kicsit felhasználóbarátabban lehessen a programjaimat paraméterezni. Tanácsot szeretnék kérni, milyen toolkittel fejlesszek. Ahogy utánanéztem, nagyjából a qt, wxwidgets és a gtk+ jöhet számításba. Mindegyikről olvastam jót és rosszat is.
-
RoyalFlush
őstag
Üdv.! Olyan valakit keresek, aki tudna egy lány ismerősömnek segíteni. Egy C program megírása lenne a feladat. Holnap, vagy holnapután küldi el nekem, de még aznap meg is kellene neki csinálni. Ha valaki ráér és nagyon ért a témához, kérem dobjon egy pü-t! Thx előre is!
-
Retekegér
MODERÁTOR
válasz
FehérHolló #3984 üzenetére
Köszi, úgy látszik rosszul közelítettem meg a problémát, elvileg ennél egyszerűbb megoldással kellene kiírni a végeredményt. Megpróbálkozok tömbbel...
-
Retekegér
MODERÁTOR
Van arra mód, hogy lebegőpontos szám esetén a felhasználó adhassa meg a program futása során, hogy hány tizedesig akarja kiírni a számot?
Pl. printf("%.5f",i); --> itt az 5-öt a program futása során kéne megadni -
FehérHolló
veterán
Találkozott esetleg valaki olyan C forráskódokkal, amiket kifejezetten C fordító és preprocesszor tesztelésére lehet használni (C elcseszett szerkezeteit nagyjából lefedi) és ingyen hozzáférhető(ek)?
-
PumpkinSeed
addikt
Végre sikerült a minimumelvű.
A Fésűs már gondot okoz.
-
Karma
félisten
válasz
PumpkinSeed #3978 üzenetére
Elkezdtem szerkeszteni a hozzászólást, csak közben spontán meeting lett
Van egy nagyon súlyos hiba: 1-től indexeled a tömböt, nem pedig 0-tól. Ezzel az első elem kimarad az összehasonlításokból, így hülyeség a vége.
A fordított sorrend, amit bizonyára tapasztalsz, az meg azért van, mert a belső ciklusodat nem az első elemtől, hanem i+1-től kell indítani. Enélkül amellett, hogy túl sokszor mész végig a teljes tömbön, még egyszer megfordítod az egészet...
Ha ezt javítod (0-tól kezdeni a külső, i+1-től a belső ciklust), már működő négyzetes lépésszámú (azaz lassú) rendezést kapsz.
De nem lesz ettől még buborékrendezés, mert annak a sajátossága, hogy az összehasonlítások és cserék mindig szomszédos elemek között történnek (pl. J és J+1).
Papírforma szerinti kiválasztásos rendezéssé könnyebb átalakítani, ha nem cserét végzel a belső ciklusban, csak megjegyzed a legkisebb szám indexét, és a belső ciklus után csinálsz egy cserét az i. és a minimumelem között. De annyira nem kritikus.
-
Karma
félisten
válasz
PumpkinSeed #3976 üzenetére
Nem, akkor lenne buborék rendezés, ha a szomszédos elemeket cserélgetnéd.
Ez most egy sok felesleges kört futó valami -
PumpkinSeed
addikt
for (i=1;i<101;i++)
{
for(j=1;j<101;j++)
{
if (a[i]>a[j])
{
csere=a[i];
a[i]=a[j];
a[j]=csere;
}
}
}Ez Buborék rendezés nem?
-
Jester01
veterán
válasz
skylaner #3972 üzenetére
A megjegyzéseket azért tettem, mert a topikot kezdők is olvassák akiknek esetleg hasznos lehet.
Amúgy mi a gond a printf("%c",c)-vel?
Működni működik, csak fölöslegesen küzd szegény gép a %c formátumstring feldolgozásával és még leírni is hosszabb
Egyébként gcc van annyira okos, hogy kicseréli putchar hívásra, tehát ezesetben futásidőben már nincs hátránya (azon túl, hogy esetleg meglepődsz, hová lett a printf hívás).
-
Geresics
addikt
válasz
amiklos #3973 üzenetére
Májkí!
Mondtam Neked! Google 3. találat! Még memóriája is van! (Vedd ki belőle, mert rögtön gyanús lenne)
-
amiklos
csendes tag
Sziasztok!
Segítségetekre lenne szükségem. Nincs időm megírni valamint nem is tudom hogyan kéne megírni. C-ben ez a házim: 10. Awari
Egymással szemben elhelyezkedő játékosoknak 6-6 tálkája van és 1-1 gyüjtő tálkája. A 6-6 tálka mindegyikében 3 "babszem" foglal helyet. Például:
| 3 | 3 | 3 | 3 | 3 | 3 |
0|-----------------------|0
| 3 | 3 | 3 | 3 | 3 | 3 |
A játékos kiválaszt egy tetszőleges tálkát a hatból, kézbe veszi és elkezd "vetni". Ez annyit jelent, hogy az óramutató járásával ellentétés irányban minden szomszédos tálkába belepottyant egy babot melyet a kiválasztott tálkából vettünk ki. Ha a saját tálkáinak végére ért, akkor egyet a saját gyűjtő tálkába is tesz, majd az ellenfél tálkáinál folytatja. Az ellenfél gyűjtő tálkájába soha nem kell tenni. Ha az utolsó babot a saját gyűjtő tálkánkba dobtuk, akkor még egyszer léphetünk. Minden egyéb esetben az ellenfél következik. Ha az utolsó babot egy üres tálkába tesszük – feltéve hogy az ezzel szemben lévő tálka nem üres – mindkét tálka kiüríthető és a saját gyűjtő tálkába tehető. A játék addig folyik, amíg van bab a 6-6 tálkában.A játék célja hogy több bab legyen a saját gyűjtő tálkánkban mint az ellenfélében. Implementálja ezt a játékot. A számítógép stratégiája lehet véletlenszerű, vagy ha ismeri a nyerő stratégiát akkor azt programozza le. -
skylaner
senior tag
válasz
Jester01 #3959 üzenetére
(Gondolom az nem jutott eszedbe hogy nem a tökéletesen szép megoldás volt a célom, hanem csak az algoritmus leírása? Eredetileg main-t se akartam írni csak a fgv-t, de a jobb érthetőség miatt beletettem.)
Amúgy mi a gond a printf("%c",c)-vel?#include <stdio.h>
void text_fragmentation(const char* string, int char_num)
{
int i=1;
while (*string != '\0')
{
putchar(*string);
if (i == char_num)
{
putchar('\n');
i=0;
}
i++;
string++;
}
}
int main(int argv, char* argc[])
{
const char* string="cseresznye";
text_fragmentation(string,3);
return 0;
} -
Jester01
veterán
válasz
buherton #3970 üzenetére
A "type" az a teljes prototípus, visszatérési értékkel együtt.
Továbbá:
The effect of program termination in a freestanding environment is implementation-defined.Tulajdonképpen a main ezzel elvesztette a speciális mivoltát. Lehet, hogy nem is ott indul a program, és nem is tudni mit kap és mit ad vissza. Csak egy mezei függvény lett.
-
Jester01
veterán
válasz
buherton #3968 üzenetére
Igen, a C szabvány ezt meg is említi:
"In a freestanding environment (in which C program execution may take place without any benefit of an operating system), the name and type of the function called at program startup are implementation-defined."Például gcc fordítónak van is rá kapcsolója, -ffreestanding. Ha ezt megadod akkor nem is reklamál a void main miatt.
-
buherton
őstag
A szabvány elég egyértelműen fogalmaz:
It shall be defined with a return type of int and and with no parameters...
Vannak esetek, amikor lényegtelen, hogy van-e egyáltalán visszatérési érték, mert már a main függvény véget érése sem megengedett, mert nincs kinek megkapnia az értéket. Vélhetően ezekre az esetekre engedi a fordító, hogy void legyen a típus.
-
Bobrooney
senior tag
-
Jester01
veterán
válasz
skylaner #3958 üzenetére
1. A main visszatérési típusa int.
2. A string literálok típusa const char*.
3. Mivel a függvényed nem módosítja a stringet, oda is const char* ajánlott (különben az előző pont miatt nem tudod beadni a literált).
4. Karakterek kiírására putchar és társai valók.
5. Optimalizációs okokból az osztás általában kerülendő ha máshogy is meg lehet oldani.
6. Nyelveket nem keverjük (a függvényed szoveg_tordelo de a paraméter char_num), lehetőség szerint csak az angolt használjuk. -
skylaner
senior tag
válasz
Geresics #3956 üzenetére
Nem a teljes kód, de a lényeg benne van.
#include <stdio.h>
void szoveg_tordelo(char* string, int char_num)
{
int i=1;
while (*string != '\0')
{
printf("%c",*string);
if (i%char_num == 0) printf("\n");
i++;
string++;
}
}
void main()
{
char* string="cseresznye";
szoveg_tordelo(string,3);
} -
Jester01
veterán
válasz
Geresics #3955 üzenetére
Ez nem jó, először szépen kiszámolod a távolságot de azután nem abból keresed a maximumot:
for (i=0; i<n; i++)
if ((pont[i].x)>max) {
max=pont[i].x;
mem=i;
} else if ((pont[i].y)>max) {
max=pont[i].y;
mem=i;
}Itt miért az x,y-al varázsolsz?
Helyesebben:for (i=0; i<n; i++)
if (tav[i]>max) {
max=tav[i];
mem=i;
}Egyébként ehhez el sem kellene tárolni a pontokat, a maximum távolságot a hozzá tartozó ponttal együtt a bekérő ciklusban is nyilvántarthatod.
Ja és kellene #include <math.h> az sqrt miatt.
-
Geresics
addikt
2. feladat: (hátha ebben valaki segít):
Írjon programot, mely bekér egy egyjegyű, egész számot és beolvas egy max. 20 karakterből álló szöveget, melyet úgy nyomtat ki, hogy egy sorba annyi karaktert nyomtat, amennyit a felhasználó definiál. Például:
Be: 3
cseresznyeEredmény:
cse
res
zny
e -
Geresics
addikt
válasz
Geresics #3954 üzenetére
Megoldásom:
#include <stdio.h>
struct koord
{
float x;
float y;
};
void main()
{
struct koord pont[10];
float tav[10];
int n, i, mem;
float max=0;
/* beolvasas */
printf("\nHany koordinatat szeretne rogziteni?");
scanf("%d",&n);
for (i=0; i<n; i++)
{
printf("\nAdja meg az x%d koordinatat: ", i+1);
scanf("%f",&pont[i].x);
printf("\nAdja meg az y%d koordinatat: ", i+1);
scanf("%f",&pont[i].y);
tav[i]==(sqrt(pont[i].x*pont[i].x)+(pont[i].y*pont[i].y));
}
for (i=0; i<n; i++)
if ((pont[i].x)>max)
{
max=pont[i].x;
mem=i;
}
else if ((pont[i].y)>max)
{
max=pont[i].y;
mem=i;
}
/* kiíratás */
printf("\nA legtavolabbi koordinata az origotol: %f, %f", pont[mem].x, pont[mem].y);
} -
Geresics
addikt
Most van épp vizsga, aki tud pls segítsen!
"Írjon programot, mely a következőket teszi!
Beolvassa a pontok számát (n). A pontok x és y koordinátáit struktúrában tároljuk.
Beolvassuk az n db pont koordinátáit. A koordináták valós számok.
Határozzuk meg az origótól legtávolabbi pontot és nyomtassuk ki ennek a pontnak a koordinátáit." -
PumpkinSeed
addikt
válasz
overclockerr #3948 üzenetére
Ha a C-t megtanulod akkor az már nagyon jó! Szinte egy alap programozási nyelv. A HTML CSS-t 1 hét alatt megtanulod ha tényleg tanulni akarsz. De ha a C-t tudod akkor az már egy erős alap bármihez.
-
skylaner
senior tag
válasz
overclockerr #3948 üzenetére
Miért lenne lényegtelen?
Weblap fejlesztéssel is sok helyen el lehet helyezkedni, nagyon jó pénzekkel. -
válasz
overclockerr #3948 üzenetére
Lenyegtelenek.
Mondjuk nem tudom, hogy mennyire jo otlet Javat meg C-t parhuzamosan tanulni, mert annyira szogesen eltero nyelvek.
-
overclockerr
tag
válasz
PumpkinSeed #3947 üzenetére
C-re meg Java-ra akarok rámenni, akkor html, php lényegtelen, ugye?
-
PumpkinSeed
addikt
válasz
overclockerr #3936 üzenetére
Én napi 7-8 órát gyakorlok, és elmondhatom hogy amit eddig tanultam teljes mértékben elsajátítottam.
-
skylaner
senior tag
válasz
Geresics #3943 üzenetére
Scanf miatt.
A scanf("%d",&db) beolvassa a számot amit beírtál, de az input stream bufferen még ott marad az Enter( \n vagy \r\n) amit majd a gets() fog beolvasni. Úgyhogy a konyv.cim egy \n-t fog tartalmazni.scanf() után ki kell üríteni a buffert. Erre van több megoldás is:
- fflush(stdin); (ez nem mindig működik)
- amit én is használtam: while (c != '\n' && c != EOF) { c = getchar(); }
- lehet hogy ez is működne:
char dummy_string[10];
scanf("%d%s",&db,dummy_string)Valamit gets() használata nem javasolt, helyette fgets() használj. / fgets(string,100,stdin) /
-
Geresics
addikt
Na, most viszont elakadtam: a címet nem kéri be, hanem rögtön a szerzőre ugrik nálam, csak nem értem, hogy miért. Ez a program:
#include <stdio.h>
#include <string.h>
#include <limits.h>
/* struktúra definiálás */
struct adatok
{
char cim[50];
char iro[50];
struct datum
{
int ev;
int ho;
int nap;
}datum;
};
void main()
{
/* deklarálás */
int i, db, azon, min_ev=INT_MAX, min_ho=12, min_nap=31;
struct adatok konyv[10];
/* adatbekérés */
do
{
printf("\nHany konyv adatat szeretne rogziteni? (Max.10!)");
scanf("%d",&db);
}
while (db>10);
for(i=0;i<db;i++)
{
printf("\nA(z) %d konyv cime: ",i+1);
gets(konyv[i].cim);
printf("\nA(z) %d konyv szerzoje: ",i+1);
gets(konyv[i].iro);
printf("\nA(z) %d konyv kiadasi eve: ",i+1);
scanf("%d",&konyv[i].datum.ev);
printf("\nA(z) %d konyv kiadasi honapja (szammal): ",i+1);
scanf("%d",&konyv[i].datum.ho);
printf("\nA(z) %d konyv kiadasi napja: ",i+1);
scanf("%d",&konyv[i].datum.nap);
}
/* legkorábbi könyv keresése */
for (i=0;i<db;i++)
{
if ((konyv[i].datum.ev)<(min_ev))
{
min_ev=konyv[i].datum.ev;
azon=i;
}
if (((konyv[i].datum.ev)==(min_ev)) && ((konyv[i].datum.ho)<(min_ho)))
{
min_ho=konyv[i].datum.ho;
azon=i;
}
if ((konyv[i].datum.ev)==(min_ev) && (konyv[i].datum.ho)==(min_ho) && (konyv[i].datum.nap)<(min_nap))
{
min_nap=konyv[i].datum.nap;
azon=i;
}
}
i=azon;
printf("\nLegregebbi kiadasu konyv: %s",konyv[i].cim);
printf("\nSzerzoje: %s",konyv[i].iro);
printf("\nKiadas datuma: %d.%d.%d\n",konyv[i].datum.ev,konyv[i].datum.ho,konyv[i].datum.nap);
system("pause");
} -
skylaner
senior tag
válasz
overclockerr #3936 üzenetére
Valóban napi 1-2 óra édeskevés.
Én is mérnöki informatikusnak tanultam, ha nem akarsz csak matekkal és programozás elmélettel + kódolással foglalkozni akkor a mérnök info jobb választás.
Vannak itt olyan jó kis tárgyak mint: elektromosságtan, elektronika, digitális technika, digitális rendszerek & számítógép architektúrák, irányítástechnika (mondjuk ez nem valami jó)
Sok mérnököt, programozót keresnek itt Magyarországon is, úgyhogy igen.
Lehet jó állást találni. Külföldön meg még jobbakat is, milliós fizetéssel. -
skylaner
senior tag
válasz
buherton #3938 üzenetére
Szerintem először is az algoritmikus gondolkodást kellene elsajátítani.
Ha ez meg van akkor az már teljesen másodlagos dolog, hogy hogyan, milyen nyelven, milyen szintaktikával írod le a megtervezett, elképzelt kódot.Ezekhez a feladatokhoz nem kell semmi más mint egy kis algoritmikus gondolkodás, ráadásul favágó módszerrel könnyen megoldhatók.
Mondjuk vizsga előtt illő lenne (nem csak akkor) tisztában lenni az alapvető adat struktúrákkal
-
Geresics
addikt
válasz
buherton #3938 üzenetére
Teljesen vakon nem vagyok, holnap vizsga, az előzőből is 40%-ot kaptam, de kell az 50%.
Egyszerűen a struktúrák valahogy kimaradtak ebben a formában.
Ilyen megoldást viszont már láttam:#include <stdio.h>
#include <string.h>
#include <limits.h>struct konyvadatok
{
char cim[50];
char szerzo[50];
struct datum
{
int ev;
int honap;
int nap;
}datum;
};void main()
{
int i,darabszam,azonosito,legkisebb_ev=INT_MAX,legkisebb_honap=12,legkisebb_nap=31;
size_t hossz;
struct konyvadatok konyvek[10];do
{
printf("\nKerem adja meg hany konyv adatat szeretne rogziteni? ");
scanf("%d",&darabszam);
}
while (darabszam>10);for(i=0;i<darabszam;i++)
{
printf("\nKerem adja meg a %d konyv cimet: ",i+1);
gets(konyvek.cim);
printf("\nKerem adja meg a %d konyv szerzojet: ",i+1);
gets(konyvek(i).szerzo);
printf("\nKerem adja meg a %d konyv kiadasanak evet: ",i+1);
scanf("%d",&konyvek(i).datum.ev);
printf("\nKerem adja meg a %d konyv kiadasanak honapjat (szammal): ",i+1);
scanf("%d",&konyvek(i).datum.honap);
printf("\nKerem adja meg a %d konyv kiadasanak napjat: ",i+1);
scanf("%d",&konyvek(i).datum.nap);
}
for (i=0;i<darabszam;i++)
{
if ((konyvek(i).datum.ev)<(legkisebb_ev))
{
legkisebb_ev=konyvek(i).datum.ev;
azonosito=i;}
if (((konyvek(i).datum.ev)==(legkisebb_ev)) && ((konyvek(i).datum.honap)<(legkisebb_honap)))
{
legkisebb_honap=konyvek(i).datum.honap;
azonosito=i;
}
if ((konyvek(i).datum.ev)==(legkisebb_ev) && (konyvek(i).datum.honap)==(legkisebb_honap) && (konyvek(i).datum.nap)<(legkisebb_nap))
{
legkisebb_nap=konyvek(i).datum.nap;
azonosito=i;
}
}
i=azonosito;
printf("\nA legregebbi kiadasu konyv: %s",konyvek(i).cim);
printf("\nA szerzoje: %s",konyvek(i).szerzo);
printf("\nA kiadas datuma: %d.%d.%d\n",konyvek(i).datum.ev,konyvek(i).datum.honap,konyvek(i).datum.nap);
system("pause");
} -
buherton
őstag
válasz
overclockerr #3936 üzenetére
Ha mérnök infó, akkor csak az ÓE. Onnan indult ez a szak és nem véletlenül.
Napi 1 óra semmi. Napi 1 órával egy C megtanulása 1 - 1,5 év. A java-é legalább 2-3 év. Főleg hogy a napi 1 óra se lesz napi 1 óra. Most 7 hónapon keresztül masszívan PERL-ezek (napi 6-7 óra), de még mindig látok új dolgokat.
-
buherton
őstag
válasz
Geresics #3935 üzenetére
Az ilyen vizsgáknak azaz átkuk, hogy csak kis esélye fogsz tudni átmenni úgy mint egyik volt szobatársamnak. Otthon megkapta a feladat megoldást, és megtanulta fejből. Azt nem tudta, hogy működik, de meg lett neki. Én ezt az utat nem javaslom.
Először keress egy C könyvet, és olvasd el kétszer legalább. Amint ez meg van gyere vissza ide.
-
skylaner
senior tag
válasz
Geresics #3935 üzenetére
Hát pedig a feladathoz nélkülözhetetlen.
Semmit nem csinál. Egyszerűen ezt a nevet adtam a saját változó típusomnak (typedef miatt)
Adhattam volna "papírsárkány" nevet is de annak nem lett volna sok értelme
(Egyébként a "_t" mint type, típus).Lehetne typedef nélkül is de akkor később többet kellene írni.
Pl.struct mydate
{
int year;
int month;
int day;
};
struct mydate published_date; -
overclockerr
tag
Jó estét!
Remélem nem veszítek rossz néven, ha némileg eltérő ügyből, de írok, kíváncsi lennék a véleményeitekre ezzel kapcsolatosan.
18 éves vagyok, jövőre tanulok tovább, Elte programozó vagy OE mérnökinformatikus szak az amit megjelölnék. Vonz az informatika, programozni nem tudok, de megszeretném tanulni s elsajátítani a C-t s Java-t, ne adj Isten még a PHP-t ezek mellé. Mennyi időt venne ez igénybe egy-két naponta ha rá szánnék 1 órát, olykor többet? Meglehet ezzel majd pályázni valami jó állást később?
OE mellett tettem le eddig a voksom, mert más a két terület, viszont két ágon lennék valamint ha az időm engedi egy-két Cisco, MS certet is csinálnék...Előre is köszönöm a véleményeteket!
Üdv.
-
skylaner
senior tag
válasz
Geresics #3932 üzenetére
Nem tudom, mennyire kell "hülye biztosra" írni a programot, de van benne 1-2 ellenőrzés.
Ha valami nem világos kérdezz nyugodtan.#include <stdio.h>
typedef struct mydate
{
int year;
int month;
int day;
} mydate_t;
typedef struct book
{
char title[30];
char writer[30];
mydate_t published_date;
} Book_t;
void print_book_info(Book_t book)
{
printf("Konyv cime: %s",book.title);
printf("Konyv szerzoje: %s",book.writer);
printf("Konyv kiadasi datuma: %d-%d-%d\n",book.published_date.year,book.published_date.month,book.published_date.day);
}
void input_stream_cleaner()
{
char c;
while (c != '\n' && c != EOF) { c = getchar(); }
}
int main(int argv,char* argc[])
{
Book_t books[10];
int i,books_count,min;
int min_years[10], min_months[10];
int min_years_count,min_months_count,min_day_idx;
printf("Mennyi konyvet akarsz tarolni:");
scanf("%d",&books_count);
input_stream_cleaner();
if ((books_count > 10) || (books_count < 1))
{
printf("Hiba! Minimum 1 es Maximum 10 kony adatait tudom tarolni!\n");
return 0;
}
for(i=0;i<books_count;i++)
{
printf("%d. konyv cime:",i+1);
fgets(books[i].title,30,stdin);
printf("%d. konyv szerzoje:",i+1);
fgets(books[i].writer,30,stdin);
printf("%d. konyv kiadasi datuma (YYYY-MM-DD):",i+1);
if (scanf("%d-%d-%d",&(books[i].published_date.year),&(books[i].published_date.month),&(books[i].published_date.day)) != 3)
{
printf("Hibas datum formatum!\n");
return 0;
}
input_stream_cleaner();
}
/*** Legkisebb ev keresese ***/
min = books[0].published_date.year;
for(i=1;i<books_count;i++)
{
if (books[i].published_date.year < min) min = books[i].published_date.year;
}
/*** Legkisebb evbol van-e tobb ***/
min_years_count=0;
for(i=0;i<books_count;i++)
{
if (books[i].published_date.year == min)
{
min_years[min_years_count]=i; //books tomb indexet taroljuk
min_years_count++;
}
}
if (min_years_count < 2) print_book_info(books[min_years[0]]);
else /*** Tobb konyv azonos evvel ***/
{
/*** Legkisebb honap keresese ***/
min = books[min_years[0]].published_date.month;
for(i=1;i<min_years_count;i++)
{
if (books[min_years[i]].published_date.month < min) min = books[min_years[i]].published_date.month;
}
/*** Legkisebb honapbol van-e tobb ***/
min_months_count=0;
for(i=0;i<min_years_count;i++)
{
if (books[min_years[i]].published_date.month == min)
{
min_months[min_months_count]=min_years[i];
min_months_count++;
}
}
if (min_months_count < 2) print_book_info(books[min_months[0]]);
else /*** Tobb konyv azonos evvel es honappal ***/
{
/*** Legkisebb nap keresese ****/
/*** Tobb azonos nap eseten a legeloszor beirt az eredmeny ***/
min = books[min_months[0]].published_date.day;
min_day_idx = 0;
for(i=1;i<min_months_count;i++)
{
if (books[min_months[i]].published_date.day < min)
{
min = books[min_months[i]].published_date.day;
min_day_idx = i;
}
}
print_book_info(books[min_months[min_day_idx]]);
}
}
return 0;
} -
Geresics
addikt
No, megkaptam a pontos feladatkiírást:
1. Szövegbevitel után a program elemezze azt. Szám esetén a számot követő karaktert annyiszor nyomtassa ki, amennyi a szám értéke. Nem szám esetén csak a karaktert nyomtassa ki.
pl.
bemenet: 4A3BC2D
eredmény: AAAABBBCDD2. Könyvtárkezelőt kell csinálni. Nyilván kell tartani egy könyv címét, szerzőjét, kiadási dátumát. Ez utóbbit tovább kell bontani év, hónap, napra. Max. 10 könyvet tárolunk. A program kérdezze meg, hány könyvet akarunk rögzíteni. Utána a bevitt szám alapján kérje be a könyv adatait. Ez után állapítsa meg a legkorábban kiadott könyvet és írja ki az ismertetőit.
Az elsőre eddig küldött megoldásokat köszönöm, este már lesz is időm beleásni magam!
-
buherton
őstag
válasz
buherton #3927 üzenetére
Itt van egy kicsit szebb. Bár a warning okát nem értem
.
#include <stdio.h>
#include <string.h>
int main(void)
{
int i;
char string[10];
char* sp = &string;
printf("Adjon meg egy max 10 karakteres szoveget\n");
gets(string);
while(*(sp++))
{
if(*sp > '0' && *sp <= '9')
{
int rep;
for(rep = 0; rep < *sp - '0'; rep++)
{
printf("%c", *(sp + 1));
}
sp++;
}
else
{
printf("%c", *sp);
}
}
printf("\n");
return 0;
} -
buherton
őstag
válasz
Geresics #3920 üzenetére
1. feladatra egy megoldás:
#include <stdio.h>
#include <string.h>
int main(void)
{
int i;
char string[10];
printf("Adjon meg egy max 10 karakteres szoveget\n");
gets(string);
for(i = 0; i < 10; i++)
{
if(string[i] == '\0') { printf("\n"); return 0; }
if(string[i] > '0' && string[i] <= '9')
{
int rep;
for(rep = 0; rep < string[i] - '0'; rep++)
{
printf("%c", string[i+1]);
}
i++;
}
else
{
printf("%c", string[i]);
}
}
printf("\n");
return 0;
} -
Geresics
addikt
válasz
kingabo #3922 üzenetére
Bocsi, vizsga után rohantam melózni, azért nem gépeltem be, amit csináltam. Valami ilyesmit hoztam össze. Tudom, hogy lehetne szebb is, de hát a görbülés a lényeg, nem az ötös!
Kb. ezt hoztam össze vizsgán (ill. próbálkoztam még egy-két módosítással is), de nem jó.
#include <stdio.h>
#include <string.h>
void main()
{
char szoveg[10];
int i=0;
int szam=0;
printf("Adjon meg egy max. 10 karakter hosszu szoveget, majd usson ENTER-t!\n");
gets(szoveg);
for (i=0; i<10; i++)
{
if (szoveg[i]=='0' ||
szoveg[i]=='1' ||
szoveg[i]=='2' ||
szoveg[i]=='3' ||
szoveg[i]=='4' ||
szoveg[i]=='5' ||
szoveg[i]=='6' ||
szoveg[i]=='7' ||
szoveg[i]=='8' ||
szoveg[i]=='9')
szoveg[i]=szam;
printf("%s", szam*szoveg[i+1]);
else printf("%s", szoveg[i]);
i++;
}
} -
Geresics
addikt
Halló!
Most volt Prog I. vizsgám, és... hát... szerintem nem sikerült.
Persze a mai vizsga ellátta a fő feladatát: megnéztem, hogy mire kell készülnöm a következő vizsgára!
Az első feladatnak nekiálltam, csak valamiért nem működött. Sajnos most rohannom kell tovább, de nagyon hálás lennék, ha írnátok működő megoldást a következő 2 feladatra, hogy azokat agyilag feldolgozhassam!1. Be kell olvasni max. 10 karaktert, majd ezeket kiíratni úgy, ha egy karakter szám, akkor az helyett a következő karaktert kell annyiszor kiírni, amekkora a szám. Pl.: AS4DZ3K -> ASDDDDZKKK.
Nem tudom, hogy mi van olyankor, ha két szám van egymás után, mert ezt a feladat nem részletezte. Azt sem tudom pontosan, hogy a 4*D után ki kell-e írni még egyszer következő karakterként a D-t, mert erre nem emlékszem, ezért az egyszerűbb megoldás is elegendő nekem (nem 5-öst akarok, hanem átmenni)!2. Könyvtár kezelő programot kellett írni, ahol struktúrákban vannak a könyvek, a szerzők, és a kiadás dátuma, de a dátum is struktúrákra bomlik (év, hónap, nap).
Ebből a feladatból ennyire emlékszem, mert neki sem álltam, küzdöttem az előzővel.Mindenkinek előre is köszi a segítséget, és küldök egy virtuális ("%s", kinvansag)-ot annak aki segít!
u.i.: megpróbálom a többiektől elkérni a pontos feladatot, és este mikor hazaérek (és ha szükséges) melinkelem, hogy én meddig jutottam a dolgozatban...
-
buherton
őstag
válasz
PumpkinSeed #3914 üzenetére
Conio vagy ncurses?
Készíts egy olyan progamot, ahol menüben lehet kiválasztani, hogy egy adatbázissal mit szeretnél csinálni.
Menü:
1. Adatbázis fájl beolvasása
2. Fájl mentése
3. Új adat felvitele
4. Régi adat törlése
(ez eddig 200 sor-ban meg lehet csinálni, tudom, mert már egyszer megírtam)
5. Adatok sorba rendezése -> lehessen választani mely oszlop szerint rendezzen sorba
Opcióként lehet benne csinálni formai ellenőrzést is, mint pl. dátumok helyes formátumban vannak-e megadva, megadott tartományon belül van az adott szám (lásd perc, óra, hónap, nap), névnek helyes-e a formátuma (nagy betűkkel keződik-e, van-e szóköz), stb...Ha ncurses, akkor készíts egy több ablakos UI-t, ahol ablakonként más és mást lehet csinálni, mint pl. egyik ablakban Fibonaccit kiszámoltatni, másikban a prímszámokat, másikban a tökéletes számokat, másikban a faktoriálist, stb...
Amiket írtam, azokat szét is bonthatod kisebb projektekre is.
Ajánlom a mi hamarabbi komolyabb programírását, mert ez a pár soros algoritmusokkal még nem fog az ember megtanulni, hogy hogyan lehet jól felépíteni egy nagyon hosszú programot.
-
Bobrooney
senior tag
válasz
PumpkinSeed #3914 üzenetére
1, Töltsünk fel egy tömböt egész számokkal, határozzuk ennek a tömbnek a pozitív elemeinek a
számát.2, Töltsünk fel egy tömböt egész számokkal, majd határozzuk meg a tömb értékeinek átlagát.
3, Töltsünk fel egy tömböt egész számokkal, majd határozzuk meg a tömb elemeinek szorzatát.
4, Töltsünk fel egy tömböt egész számokkal, a tömb elemeinek a maximum, minimum és (számtani és
mértani) közép értékét.5, Töltsünk fel egy tömböt egész számokkal, majd írjuk ki a páros elemek pozícióját.
6, Töltsünk fel egy tömböt egész számokkal, csak páros számokat tartalmazhat!
-
PumpkinSeed
addikt
Tud valaki egy egyszerű feladatot adni nekem? Ismereteim: Vezérlési szerkezetek, karakteres képernyő design és igazítás. Szeretnék gyakorolni, de semmi nem jut már az eszembe.
Esetleg még tömbbös is szóba jöhet.
-
buherton
őstag
válasz
PumpkinSeed #3911 üzenetére
Miért nem gcc-t, vagy mingw-t használsz? Parancssoros ablakban kiválóan lehet használni a ncurses-t, de ezt csak egy alternatíva
.
-
Karma
félisten
válasz
PumpkinSeed #3909 üzenetére
Egy egyszerű Windows alatti megoldás, ha fogod az econio forrását, és együtt fordítod a programoddal. Nem véletlen, hogy Czirkos is ezt ajánlja
A C Free-t nem ismerem, de biztos van valami egyszerű módja, hogy a projektedhez add.
-
bpx
őstag
válasz
PumpkinSeed #3904 üzenetére
"dos.h-t kell includolni"
biztos?
ez nem standard fuggveny, de en azt latom tobb helyen is (Google), hogy conio.h kell hozza -
kispx
addikt
válasz
PumpkinSeed #3902 üzenetére
Melyik fordítót használod?
-
bpx
őstag
válasz
PumpkinSeed #3902 üzenetére
include-olod, amit kell?
vagy mi a kerdes? -
PumpkinSeed
addikt
Nem tudja valaki, hogy a gotoxy-t hogyan tudom c-be beletenni?
Ú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!
- Gyúrósok ide!
- Steam Deck
- NVIDIA GeForce RTX 4080 /4080S / 4090 (AD103 / 102)
- AI-alapú felskálázót fejleszt az ultramobil piacra az ARM
- Spórolós topik
- Kazy Computers - Fehérvár - Megbízható?
- PlayStation 5
- Xbox Series X|S
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Miért álltak az oldalak egy hétig, mi történt?
- További aktív témák...
- GYÖNYÖRŰ iPhone 13 Pro Max 1TB Gold -1 ÉV GARANCIA - Kártyafüggetlen, MS3051
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RTX 5090 32GB GAMER PC termékbeszámítással
- HIBÁTLAN iPhone 11 64GB White -1 ÉV GARANCIA - Kártyafüggetlen, MS3027
- GYÖNYÖRŰ iPhone 13 Pro Max 256GB Sierra Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3103
- Eladó szép állapotban levő Apple iPhone 12 Mini 64GB / 12 hó jótállás
Állásajánlatok
Cég: FOTC
Város: Budapest