Új hozzászólás Aktív témák
-
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)
-
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." -
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");
} -
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");
} -
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!
-
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...
-
Geresics
addikt
válasz
dudika10 #3893 üzenetére
Tökéletes köszönöm!
Ráadásul már azt is értem, hogy miért nem volt jó eddig!Csupán annyit kellett átírnom, hogy a db=1-ről induljon, mert a szóközök száma mindig egyel kevesebb, mint a szavaké.
Még egyszer millió köszönet mindenkinek!
Szerk.:
Közben (#3894) tototos is megírta -
Geresics
addikt
válasz
tototos #3885 üzenetére
Most meg az "i"-re reklamál
Így fest jelenleg a kód, és kezdek megőrülni, mert azt írja, hogy "The variable 'i' is being used without being defined."void beolvas(char *szoveg[71])
{
printf("Adjon meg egy max. 70 karakter hosszu szoveget, majd usson ENTER-t!\n");
gets(szoveg);
}
int szamlalas()
{
char szoveg[71];
int db;
int i;
while (szoveg[i]!='\0' || szoveg[i]!='.')
{
if (szoveg[i]=' ')
db++;
i++;
}
}
int main()
{
char szoveg[71];
int db;
beolvas(szoveg);
szamlalas();
printf("A szoveg: %s", szoveg);
return 0;
} -
Geresics
addikt
Ismét szeretnék én is segítséget kérni, ugyanis továbbra is gondjaim vannak a külön függvényekkel... :S
/* Írja meg a tömb és sztring kezelő programokat olyan módon,
hogy a tömb vagy vektor a main függvényben legyen definiálva
és minden egyéb műveletet egy külön függvény tartalmazzon.
Például a beolvasás, keresés, számítás minegyik egy külön függvénybe kerüljön! */
/* Olvassunk be egy maximum 70 karakter hosszú mondatot.
Számoljuk meg, hogy hány szóból áll a mondat.
A szavakat a szóköz (' ') karakter választja el egymástól.
A mondat végén a pont ('.') karakter áll és ne vegyük figyelembe a pont utáni karaktereket */
#include <stdio.h>
#include <stdlib.h>
void beolvas(char szoveg[71])
{
printf("Adjon meg egy max. 70 karakter hosszu szoveget, majd usson ENTER-t!\n");
gets(szoveg);
}
void szamlalas (int db)
{
char szoveg[71];
int i;
while (szoveg[i]!='\0' || szoveg[i]!='.')
{
if (szoveg[i]=' ')
db++;
i++;
}
}
int main()
{
char szoveg[71];
int db;
beolvas(szoveg);
szamlalas(db);
printf("A szoveg: %s", szoveg);
return 0;
} -
Geresics
addikt
-
Geresics
addikt
válasz
tototos #3859 üzenetére
sajnos a csere nem működik.
Próbafuttatáskor errorral kilép.
Megpróbáltam itt-ott átírni (pl. az általam korábban definiált változókra, stb.), de nem jutottam előrébb.
Jelenleg így fest a teljes kódom:/* Írja meg a tömb kezelő programot olyan módon,
hogy a tömb a main függvényben legyen definiálva
és minden egyéb műveletet egy külön függvény tartalmazzon.
Például a beolvasás, keresés, számítás mindegyik egy külön függvénybe kerüljön! */
/* Töltsünk fel egy 5x5-es integer mátrixot futási időben!
Ezután olvassunk be még két egész számot 0 és 4 között.
Végül a program cserélje fel a két egész számmal megadott oszlop elemeit.
Nyomtassuk ki az eredményt. */
#include <stdio.h>
#include <stdlib.h>
void beolvas(int array[5][5])
{
int i,j;
for(i=0; i<5; i++)
{
for(j=0; j<5; j++)
{
printf("Soron kovetkezo elem: ");
scanf("%d", &array[i][j]);
}
}
}
void csere(int a[5][5])
{
int j; /* j a sorokat jelöli */
int szam1, szam2;
int mem=0;
for(j=0;j<5;j++)
{
mem=a[j][szam1-1];
a[j][szam1-1]=a[j][szam2-1];
a[j][szam2-1]=mem;
}
}
void nyomtatas(int a[5][5])
{
int i, j; /* i lesz az oszlop száma */
for(i=0; i<5; i++)
{
for(j=0; j<5; j++)
{
printf("\nA(z) %d oszlop %d. eleme: [%d]", i+1, j+1, a[j][i]);
}
}
}
int main()
{
int a[5][5];
int i, j; /* i lesz az oszlop száma */
int szam1, szam2;
int mem=0;
/* beolvasás */
printf("\nAdja meg az 5x5-os tomb elemeit! Minden elem utan usson ENTER-t!\n");
beolvas(a);
/* két szám beolvasása */
printf("\nAdjon meg egy szamot 0 es 4 kozott: ");
scanf("%d", &szam1);
printf("Adjon meg egy masik szamot 0 es 4 kozott: ");
scanf("%d", &szam2);
/* csere */
csere(a);
/* nyomtatás */
nyomtatas(a);
return 0;
}Megpróbáltam azt is, hogy a két szám beolvasását beleraktam a "csere" függvénybe, de nem segített...
-
Geresics
addikt
válasz
tototos #3855 üzenetére
Istenkirály vagy!
Ez alapján kezdem kapizsgálni a lényeget, meg is csináltam gyorsan a nyomtat függvényt is!
Már csak erre a fránya oszlopcserére kell rájönnöm, és mehetek is a másik feladatra!
Tényleg, az int array[5][5] miért van? Mert az én értelmezésemben (ahogy a nyomtatban csináltam) az "a" nevű 5x5-ös mátrixra hivatkozom. Vagy rosszul értelmezek valamit?#include <stdio.h>
void beolvas(int array[5][5])
{
int i,j;
for(i=0; i<5; i++)
{
for(j=0; j<5; j++)
{
printf("Soron kovetkezo elem: ");
scanf("%d", &array[i][j]);
}
}
}
void nyomtatas(int a[5][5])
{
int i, j; /* i lesz az oszlop száma */
for(i=0; i<5; i++)
{
for(j=0; j<5; j++)
{
printf("\nA(z) %d oszlop %d. eleme: [%d]", i+1, j+1, a[j][i]);
}
}
}
int main()
{
int a[5][5];
int i, j; /* i lesz az oszlop száma */
int szam1, szam2, mem;
/* beolvasás */
printf("\nAdja meg az 5x5-os tomb elemeit! Minden elem utan usson ENTER-t!\n");
beolvas(a);
/* nyomtatás */
nyomtatas(a);
return 0;
} -
Geresics
addikt
-
Geresics
addikt
Hali!
Kicsit későn állok neki a Prog I. háziknak, ezért szükségem lenne egy kis segítségre!
A tömb feltöltését és kinyomtatását már megcsináltam, de az oszlopok felcserélése még hátravan.
A nagyobb problémám az, hogy hogy csinálok különálló függvényeket?/* Írja meg a tömb kezelő programot olyan módon,
hogy a tömb a main függvényben legyen definiálva
és minden egyéb műveletet egy külön függvény tartalmazzon.
Például a beolvasás, keresés, számítás mindegyik egy külön függvénybe kerüljön! *//* Töltsünk fel egy 5x5-es integer mátrixot futási időben!
Ezután olvassunk be még két egész számot 0 és 4 között.
Végül a program cserélje fel a két egész számmal megadott oszlop elemeit.
Nyomtassuk ki az eredményt. */#include <stdio.h>
#include <stdlib.h>
void main()
{
int a[5][5];
int i, j; /* i lesz az oszlop száma */
int szam1, szam2, mem;
/* beolvasás */
printf("\nAdja meg az 5x5-os tomb elemeit! Minden elem utan usson ENTER-t!\n");
for(i=0; i<5; i++)
{
for(j=0; j<5; j++)
{
printf("Soron kovetkezo elem: ");
scanf("%d", &a[i][j]);
}
}
/* két szám beolvasása */
printf("\nAdjon meg egy szamot 0 es 4 kozott: ");
scanf("%d", &szam1);
printf("Adjon meg egy masik szamot 0 es 4 kozott: ");
scanf("%d", &szam2);
/* két oszlop megcserélése */
/* a következő algoritmust találtam ki, de még nem írtam meg:
a[0][szam1]=mem;
a[0][szam2]=a[0][szam1];
mem=a[0][szam2];
mem=0;
*/
/* nyomtatás */
for(i=0; i<5; i++)
{
for(j=0; j<5; j++)
{
printf("\nA(z) %d oszlop %d. eleme: [%d]", i+1, j+1, a[j][i]);
}
}
}
Ú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!
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Revolut
- Spórolós topik
- Le Mans Ultimate
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Yettel topik
- Hitelkártyák használata, hitelkártya visszatérítés
- Végleg lenyomta a tévét a streaming az USA-ban
- Óra topik
- Milyen processzort vegyek?
- További aktív témák...
- Eladó konfig! Ryzen 7 7800X3D 2TB SSD 64GB DDR5 RX9070XT 16GB!
- Új, makulátlan állapotú Samsung Galaxy Buds FE, fehér, fél év garancia
- Új, makulátlan állapotú Samsung Galaxy Watch7 44mm ezüst, 2 év garancia
- Új, makulátlan állapotú Samsung Z Fold 6 256GB Tengerészkék, független, 2 év garancia
- Használt TP-Link Deco M4 - AC1200 Router (Mesh-ként is használható)
- ÚJ Lenovo Legion Pro 5 16IRX9 - 16" WQXGA 165Hz - i5 14500HX - 32GB - 1TB - RTX 4060 - 3 év garancia
- BESZÁMÍTÁS! HP ZBook 15 G6 munkaállomás - i7 9850H 16GB DDR4 RAM 512GB SSD Quadro T2000 4GB WIN10
- AKCIÓ! Gigabyte H510M i5 10400F 16GB DDR4 512GB SSD GTX 1070 8GB Rampage SHIVA Zalman 600W
- Fotó állvány eladó
- BESZÁMÍTÁS! Dell Precision 5820 XL Tower PC - Xeon W-2123 112GB RAM 512GB SSD 1TB RX 580 8GB Win 11
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest