Kezdőoldal » Számítástechnika » Programozás » C# segítene valaki?

C# segítene valaki?

Figyelt kérdés

Van egy fájl, abban nevek, és a nevekhez, tartozik 6 tantárgy osztályzata.

A feladat, hogy kiírjuk egy fájlba a nevet, és mellé átlagoljuk a 6 osztályzatot illetve szövegesen is értékeljük (pl.: 4.5 felett jeles).


A neveket kiírja, viszont az átlag résszel gondban vagyok.

Egy átlag tömböt kellene létrehozni vagy hogy?



Előre is köszönök minden hasznos választ!



2015. febr. 1. 21:31
1 2
 1/12 anonim ***** válasza:
Tök mindegy, hogy tömbbe rakod, vagy 6 külön változóba, ugyanúgy a memóriába kerül. Tömbbel talán praktikusabb, kevesebbet kell gépelni. Az átlag számítása meg úgy történik, hogy összeadod őket, majd az összeget elosztod 6-tal.
2015. febr. 1. 21:32
Hasznos számodra ez a válasz?
 2/12 A kérdező kommentje:

Kicsit pontosítok:

be van olvasva az összes diák(40) neve, és a 40 diákhoz tartozó fejenként 6 osztályzat egy rekordba.


Ezek után az összes diáknak ki kell számolni az átlagát majd ezeket kiírni.

Szóval 40db átlag kerül kiszámításra, és így kell a fájlba kerülnie:


Szabó Gergő

4.67, jeles

Kis István

3.98, jó

stb

2015. febr. 1. 21:40
 3/12 anonim ***** válasza:
Még mindig nem derült ki, hogy mi a kérdés. A fájlba írást nem tudod? Csak mert az átlagszámítást leírtam fentebb. 6 számot csak össze tudsz adni...
2015. febr. 1. 21:46
Hasznos számodra ez a válasz?
 4/12 A kérdező kommentje:

Szóval, odáig már megy, hogy kiírja a neveket, sőt az jegyeket is összeszámolja (jól), viszont az átlag mindig 0.


Szerintem az index nem tetszik neki, de nem tudom így hirtelen.

Itt a részlet a kódból:



double[] atlag=new double [n+1];

int[] ossz = new int[n + 1];



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

{

ossz[i] = v[i].irodalom + v[i].nyelvtan + v[i].matek + v[i].tori + v[i].angol + v[i].prog;

}

atlag[n]= ossz[n] / 6;

2015. febr. 1. 21:47
 5/12 A kérdező kommentje:
És igen, van n változó, van is értéke, szóval kéne vele tudni indexelni.
2015. febr. 1. 21:48
 6/12 anonim ***** válasza:

Kétdimenziós tömbbel:


int[,] osztalyzat = new int[40, 6]; // 40 darab 6 osztályzatból álló tömb

double[] atlag = new double[40]; // A 40 darab átlag tárolása

// Átlag kiszámítása

for (int i = 0; i < 40; i++)

{

for (int j = 0; j < 6; j++)

{

atlag[i] += osztalyzat[i, j];

}

atlag[i] /= 6;

}

2015. febr. 1. 21:51
Hasznos számodra ez a válasz?
 7/12 anonim ***** válasza:
Tört számot próbálsz int-be tenni. Alapvető hiba.
2015. febr. 1. 21:52
Hasznos számodra ez a válasz?
 8/12 anonim ***** válasza:
Kiegészítem, mert látom, hogy maga a változó double. Viszont ha 6-tal osztasz, és nem 6.0-val, akkor int lesz belőle, és kerekítődik.
2015. febr. 1. 21:54
Hasznos számodra ez a válasz?
 9/12 A kérdező kommentje:

Köszönök minden választ!

A két dimenziós tömb is megoldás, de én a kezdőbb módszert választottam.


Egyébként, a int vs. double hiba javítása után se ment, és most esett le: eddig mindig egyetlen átlagot kellett számolni, ezért a cikluson kívülre írtuk azt osztás részt, viszont most több kell, így miután azt a részt is a ciklusba raktam működőképes lett.

2015. febr. 1. 22:02
 10/12 anonim ***** válasza:
50%

Nem is értem minek kellenek egyáltalán tömbök, nemhogy két dimenziósak???

Olvasol nevet, rögtön írod az új file-ba, egy darab int változóba olvasod a jegyeket, majd a végén elosztva 6.0-val kiírod a file-ba...

2015. febr. 1. 22:34
Hasznos számodra ez a válasz?
1 2

További 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!