Kezdőoldal » Számítástechnika » Programozás » Valaki segíteni a program...

Valaki segíteni a program megírásába (c++)?

Figyelt kérdés
Statisztika keresztnevekből:Kérje be a tankör (max 20 fő) keresztneveit, majd válassza ki ebből a leghosszabb, a legrövidebb, illetve a leggyakrabban elő forduló keresztneveket. Írassa ki melyik hány betűből áll, és hogy a legdivatosabb hányszor fordul elő.
2011. nov. 30. 15:39
1 2
 1/14 Mugen ***** válasza:
Kezdd el megírni, aztán ha megakadsz, biztosan kapsz segítséget.
2011. nov. 30. 17:35
Hasznos számodra ez a válasz?
 2/14 A kérdező kommentje:

eddig jutottam el:

‎#include <iostream>

using namespace std;

struct nevek

{

char nev[15];

int hossz;

};

int main()

{

int i=0,n=0,max=0,maxindex=0,min=0,minindex=0;

nevek tankor[20]={""};

/* Nevek számának bekérése ellenorzötten: 1~20*/

do

{

cout << "Hanyan vannak a tankorben? max(20) \n";

cin >> n;

}while(n>20 or n<1);

/* Nevek bekérése, hosszuk meghatározása */

for(i=0;i<n;i++)

{

cout << i+1 << ". keresztneve:\n";

cin >> tankor[i].nev;

tankor[i].hossz=strlen(tankor[i].nev);

}

/* Legrövidebb és leghosszabb kiválasztása */

maxindex=0;

max=tankor[0].hossz;

minindex=0;

min=200;

for(i=0;i<n;i++)

{

if(tankor[i].hossz>max)

{

max=tankor[i].hossz;

maxindex=i;

}

if(tankor[i].hossz<min)

{

min=tankor[i].hossz;

minindex=i;

}

}

cout << "Legrovidebb nev: " << tankor[minindex].nev << " - " << tankor[minindex].hossz << " betu\n";

cout << "Leghosszabb nev: " << tankor[maxindex].nev << " - " << tankor[maxindex].hossz << " betu\n";

system("PAUSE");

return 0;

}

azt nem tudom hogy kell meg csinálni amikor ki kell íratni a legtöbbször előforduló keresztnevet meg hogy hányszor fordul elő ebben tudna segíteni valaki?

2011. dec. 1. 18:06
 3/14 Mugen ***** válasza:

azt nem tudom hogy kell meg csinálni amikor ki kell íratni a legtöbbször előforduló keresztnevet meg hogy hányszor fordul elő ebben tudna segíteni valaki?


Ezt egyszerűen megteheted. Létre kell hoznod egy 20 elemű int tömböt mondjuk int t[20](aminek minden elemét kinullázod). Veszed a i. nevet, és ha nevek[i] megegyezik az aktuálisan vizsgált névvel t[i]+=1; Ezt megcsinálod az összes névvel. Ekkor van egy tömböd, amiben le van írva, hogy melyik név hányszor szerepel. Ez után ezen a tömbön kell egy maximum vizsgálatot végrehajtanod.


int index=0;


csinálsz egy for ciklust és megnézed benne hogy


t[index]<t[i]?

Ha igen akkor index=i;

Egyébként meg növeljük az i értékét.


Ha megakadtál akkor írj megint.

2011. dec. 1. 21:21
Hasznos számodra ez a válasz?
 4/14 A kérdező kommentje:
még annyi kérdésem lenne hogy a dokumentációt hogy kell csinálni hozzá?
2011. dec. 3. 12:05
 5/14 Mugen ***** válasza:
pl. használhatsz doxygent. Elég sok mindent legenerál neked. Csak be kell kommentezni a kódodat, úgy ahogy azt a doxygen kéri. Bár én régen használtam. Azóta lehet, hogy fejlesztettek rajta. :) Töltsd le, nézz hozzá pár tutorialt, meg howto-t aztán szerintem meg tudod csinálni.
2011. dec. 3. 17:37
Hasznos számodra ez a válasz?
 6/14 A kérdező kommentje:
tudnál még segíteni mert a feladat vége még mindig nem akar sikerülni?
2011. dec. 5. 21:39
 7/14 Mugen ***** válasza:
Persze.. Írd a kérdést aztán megpróbálok válaszolni.
2011. dec. 5. 22:21
Hasznos számodra ez a válasz?
 8/14 A kérdező kommentje:
nemtudom hogy lehet különválasztani az adatokat, ilyet nem tanultunk
2011. dec. 5. 22:23
 9/14 Mugen ***** válasza:
Ezt hogy érted hogy különválasztani?
2011. dec. 5. 22:26
Hasznos számodra ez a válasz?
 10/14 A kérdező kommentje:

amit írtál válaszba azt nem értem nem tudom se hogy se meg csinálni


Mugen válasza:


azt nem tudom hogy kell meg csinálni amikor ki kell íratni a legtöbbször előforduló keresztnevet meg hogy hányszor fordul elő ebben tudna segíteni valaki?


Ezt egyszerűen megteheted. Létre kell hoznod egy 20 elemű int tömböt mondjuk int t[20](aminek minden elemét kinullázod). Veszed a i. nevet, és ha nevek[i] megegyezik az aktuálisan vizsgált névvel t[i]+=1; Ezt megcsinálod az összes névvel. Ekkor van egy tömböd, amiben le van írva, hogy melyik név hányszor szerepel. Ez után ezen a tömbön kell egy maximum vizsgálatot végrehajtanod.


int index=0;


csinálsz egy for ciklust és megnézed benne hogy


t[index]<t[i]?

Ha igen akkor index=i;

Egyébként meg növeljük az i értékét.


Ha megakadtál akkor írj megint.

2011. dec. 5. 22:28
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!