Hol rontom el az alábbi programozásos házi feladatot?
Az a helyzet, hogy mérnök hallgatóként tudnunk kell egy kicsit programozni. Az egyik mérnökinfós ismerősömhöz járok különórára és feladott egy házit, amelyhez átnéztem az általa kijelölt anyagrészeket és megpróbáltam megcsinálni a feladatot. De sajnos nem jutottam semmi jóra, pedig a feladat egyszerű.
A feladatkiírás így hangzik: Véletlenszerűen generálj egy pontszámot 0 és 22 között! Majd ha ez a szám 0 és 10 közé esik, írd ki hogy megbukott, 11-20 között megfelelt, 21-22 kiváló!
Amit én csináltam az az alábbi linken érhető el. Lehet hogy bazi nagy hülyeségeket írtam, de legalább megpróbáltam. Egyébként az biztos hogy az eleje nem jó, mert a gépnek magától kell megadnia egy számot 0-22 között. Viszont én pedig azt írtam, hogy én adjam meg ezt a számot. De alapból nem is tudom hogy hogy kell, ráadásul nem találtam semmi ismerős kifejezést ami rémlett volna az eddigi "ismereteimből" hogy hogyan kell egy véletlen számot generálni...
Kép: [link]
Előre is köszönöm szépen a segítséget!
20/l
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
1. Ilyen nincs szinte egyik nyelvben sem, hogy "x<=y<=z". Azt fogalmazd meg, hogy "x<=y ÉS y<=z" -> tehát nézz utána a logikai operátoroknak. :)
2. Véletlenszám generálás: Google("c random number");
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
#include <time.h>
int main(){
srand(time(NULL));
int r = rand()%23;
if (r <= 10 )
printf("%d On megbukott", r);
else if ((r > 10) && (r < 21 ))
printf("%d On megfelelt", r);
else if (r > 20)
printf("%d On kivalo", r);
system("pause");
}
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
Csináltam neked egy megoldást, írtam magyarázatot is.
(Az oldal nem enged pastebin-t linkelni...)
pastebin[dot]com/YDbSqf4q
Link:
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
elég a 2 if is egybeágyazva
ez nem C kód
if (r <= 10)
{megbukott}
else if (21<=r) (kiváló)
else (megfelelt)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
if (randomSzam>=0 && randomSzam<=10)
Mivel mi generáltuk a számokat és tudjuk, hogy 0 és 22 között lehet ezért
nem vizsgáljuk, hogy nagyobb vagy egyenlő mint 0 hanem csak azt, hogy kisebb mint 11,
- ezt sajna én is benéztem - 6 fél után - a r <=10 nél -
if (randomSzam < 11)
if (randomSzam>=11 && randomSzam<=20) helyett
if ((randomSzam > 10) && (randomSzam < 21 )) miért is kellene vizsgálni az egyenlőséget ?
a harmadik bocsánatos mivel
//ezt direkt másként írtam, itt vagy 21 vagy 22 esetén lép be
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Simkol, te hülye vagy.
Minek kötsz bele, ha ennyire nem értesz hozzá?
Tökéletesen rendben voltak azok az elágazások, úgy ahogy a kolléga csinálta.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!