Ez a feladat hogyan nézne ki C nyelvben? Készíts függvényt dísszor néven, ami csillagokat ír ki egymás mellé, a paraméterében kapott számban!
A legnagyobb baj az az,hogy valahogy nem tudom összehangolni a számértékét a kiírandó karakterre.
Próbáltam ciklusban hogy addig növelje a karakter értékét amíg el nem éri a szám értékét de valahogy nem tudtam összehangolni őket.
@#20:
Hát, speciel EZ a függvény nem különösebben hasznos, de ez történetesen egy nagyon egyszerű gyakorlófeladat. A függvények általában viszont nagyon jók arra, hogy hasonló feladatokat ne kelljen nyolcvanszor beleírnod a programba, hanem csak a szükséges értékeket add át mindig ugyanannak a programrésznek. Itt csak egy kis vicik-vacak teendőt lát el a függvény, és csak egyszer hívod meg -- anélkül még rövidebb is lenne. De képzelj el valami bonyolultabb feladatot, amelyet egy huszonöt oldalas programrésszel tudsz megoldani, és azt a programodban mondjuk negyven különböző helyen kell elvégezned. Ebben az esetben talán te is praktikusabbnak találod, hogy az egészet csak egyszer kell megírnod, és utána mindenhol elég csak egy sorban elküldeni neki az adatokat.
Amit a programod végére biggyesztettél, teljesen értelmetlen halandzsa. Itt van egy megoldás, ha már megígértem (elnézést kérek azoktól, akik tudnak is C-ben programozni):
#include <stdio.h>
void diszsor(int hanycsillag)
{
for(int i = 0; i < hanycsillag; i++) printf("*");
printf("\n");
}
int main()
{
int csillagok_szama = 0;
printf("Hány csillagot rajzoljak a képernyőre? ");
scanf("%d", &csillagok_szama);
diszsor(csillagok_szama);
return 0;
}
Mint láthatod, itt tényleg létezik egy diszsor() nevű, a main()-től független programrészlet, amelyre a program egyik része hivatkozik is, nem csak úgy magányos bércként mered a világba. Megjegyzem, ha ezt a main() után raktad volna, akkor a fordítás elakadna, mert a main() fordításakor a fordító még nem tudna arról, hogy lesz egy ilyen függvény. Ha a main() után akarod írni, akkor a program elején deklarálnod kell, hogy valahol a kódban megtalálhatja, vagyis oda kell írnod a függvényt a tényleges teendőinek leírása nélkül, ilyenformán:
void diszsor();
Ennek a hatására a fordító tudomásul veszi, hogy van ilyen függvény, és amikor beleütközik, a kód további részén is keresgél, nemcsak a main() előtt.
Még egy megjegyzés: A main() a szabvány szerint már jó ideje int típusú (vagyis azt a bizonyos return értéket egész számként adja vissza), tehát leszel szíves így használni, még ha a fordítód esetleg el is fogadja másképp:
int main(){stb.}
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!