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
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");
#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");
}
Csináltam neked egy megoldást, írtam magyarázatot is.
(Az oldal nem enged pastebin-t linkelni...)
pastebin[dot]com/YDbSqf4q
Link:
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)
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
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 © 2024, 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!