Hogy lehetne a legegyszerűbben megírni egy ilyen programot c-ben?
Már napok óta próbálkozok de eddig nem sokra jutottam.
Egy txt-ben számok vannak nővekvő sorrendben pl: 1 5 6 10.
Annyit tudunk még róluk hogy akárhány lehet de ha kevesebb mint egy van akkor hibát kell kiírni. És van egy szám amit már előre kiolvastam a txt-ből az nem probléma, de az a szám nagyobb mint a többi, ez most legyen 15. A feladat pedig a következő: beolvasok kettőt a nagyobból kivonom a kisebbet, kiíratom(vagy meghívok rá mondjuk egy függvényt), beolvasom a következőt, szintén, és így tovább, az utolsót pedig abból a számból vonom ki ami most a 15. Tehát pl:
printf 5-1
printf 6-5
printf 10-6
printf 15-10.
És ha csak egy szám lenne, akkor értelemszerűen csak azt kellene kivonni a legnagyobból.
A txt végét nem jelzi semmi, de előtte is vannak adatok amiket már előre kiolvastam és eltároltam mint pl az a legnagyobb szám, tehát a feof nem lesz jó(leglábbis én úgy vettem észre hogy az csak az elejétől működik).
No offense, ez így eléggé se füle-se farka megfogalmazás.
Jó lenne, ha bemásolnád (vagy inkább belinkelnéd) a pontos feladatot (nagyon iskolai feladatnak tűnik), mellékelnéd az állományt, amiben a számok is vannak (hogy lássuk az állomány szerkezetét: milyen szöveg szerepel a számok előtt, a számok szóközzel vagy sortöréssel vannak elválasztva, milyen fájlvége van megadva), illetve a forráskódot (valamilyen kódmegosztó oldal - pastebin.com, ghostbin.co, hastebin.com,... - használatával, mivel a fórumon a forráskód indentálása szétesik, nincs kódszínezés, így nem annyira olvasható), amivel idáig próbálkoztál (mert abból nem tanulsz, ha helyetted megírjuk a feladatot)
Az input egy az egyben az amit leírtam: 1szóköz5szóköz6...
Az előtte lévőkkel ne foglalkozzatok inkább vegyétek úgy hogy nincs előtte semmi
Feladat szöveg nincs ami ezt leírná mert ez egy nagyon hosszú és összetett feladat része és csak itt akadtam el mert a többi már meg van. Valami ilyesmivel próbálkoztam beilvasni:
while(fscanf(f, "%d", &szam) == 1) {
printf("%d\n", szam);
}
Tehát addig olvasok a fájlból amíg talál számot.
Ha feltételezzük, hogy a fájl szerkezete (N: a számok darabszáma):
szöveg + "az a szám nagyobb mint a többi" + szóköz +
szám0 + szóköz + szám1 + szóköz +...
...+szám[N-2] + szóköz + szám[N-1]<EOF>
szóval valami ilyesmi:
és:
* a számok növekvő sorrendben vannak
* N = 0 esetén hibát kell kiírni,
* N = 1 esetén ki kell "abból a számból, ami nagyobb mint a többi" az aktuális számot
* N > 1 esetén végig kell menni a számokon, és ki kell vonni az aktuálisból az előtte levőt, majd "abból a számból, ami nagyobb mint a többi" az utolsót
akkor minimum (hirtelenjében csaptam össze) valahogy így oldanám meg:
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!