Kezdőoldal » Számítástechnika » Programozás » Hogyan lehet egy elágazást a...

Hogyan lehet egy elágazást a legrövidebben megírni C-ben?

Figyelt kérdés
A feladat az lenne, hogy a lehető legkevesebb karakterből 1 olyan elágazás, amelynél ha egy x változó mondjuk egyenlő 1-gyel, vagy 12-vel, vagy 86-tal, akkor lefusson 1 utasítás. A fő feladat az, hogy a lehető legkevesebb karakterből.
2014. nov. 21. 00:08
1 2
 1/12 anonim ***** válasza:
if(x==1||x==12||x==86) utasítás;
2014. nov. 21. 00:23
Hasznos számodra ez a válasz?
 2/12 anonim ***** válasza:

Hát körülbelül amit az első mond.

Még azt írd meg, hogy konkrétan ezekről a számokról szól a feladat, vagy a hasadra ütöttél, mert akkor nem kezdek el biteket fölírogatni.

2014. nov. 21. 01:43
Hasznos számodra ez a válasz?
 3/12 anonim válasza:
# 2 énnél rövidebb nem lesz akkor sem
2014. nov. 21. 02:34
Hasznos számodra ez a válasz?
 4/12 anonim ***** válasza:

Nyilván nem ez a feladat, mert ez így rohadt primitív.

A szóközöket bárki ki tudja törölni.

2014. nov. 21. 10:59
Hasznos számodra ez a válasz?
 5/12 A kérdező kommentje:

Legfőképp arra lettem volna kíváncsi, hogy tud-e valaki olyan, még lefutó(ha csak warningol a gcc az nem gáz) if-et(akár ? : formában), amiben nem kell beleírni háromszor azt, hogy x==érték, hanem valami trükkel elég lenne egyszer szerepelnie az (x==) résznek, és lenne még a 3 érték. Oké, hogy ott van a switch, de az karakterekben csak még hosszabb lenne.

Hogy konkretizáljam a példát, x egy karakter, ami ha egyenlő 68-cal, 70-nel, 76-tal vagy 84-gyel, akkor 1 változót beszorzok 2-vel.

2014. nov. 21. 11:37
 6/12 anonim ***** válasza:

y=(x==68||x==70||x==76||x==84)?2*y:y;


Ennél tovább egyszerűsíteni felesleges, mert csak nehezebb lesz átlátni a kódot. És nem karakterre optimalizáljuk a forráskódot, hanem lefordított utasítások számára minimalizálunk, vagy mint általában futásidőre maximalizálunk. Akármilyen nagy is a forrásfájl nem az a cél, hogy az ember által olvasott részt csökkentsük méretben.

2014. nov. 21. 12:26
Hasznos számodra ez a válasz?
 7/12 A kérdező kommentje:
De nekem most épp az a feladat, hogy az ember által olvasható részt minimalizáljam, az, hogy átláthatatlan vagy túlkomplikált, az nem számít
2014. nov. 21. 12:31
 8/12 anonim ***** válasza:
Szerintem te félreértetted a feladatodat.
2014. nov. 21. 12:46
Hasznos számodra ez a válasz?
 9/12 A kérdező kommentje:
Akkor szerinted mit jelent az, hogy a "lehető legkisebb legyen a forráskód mérete"?
2014. nov. 21. 12:54
 10/12 anonim ***** válasza:

Nem lehet véletlenül, hogy a sok féltétel egy tömbben van? Mármint csak így lenne értelme a feladatnak; van x darab feltétel és vizsgáljuk meg a leggyorsabban.


int i=0;

for(;i<len&&tomb[i]!=x;i++)

if(i<len) utasitas();

2014. nov. 21. 12:56
Hasznos számodra ez a válasz?
1 2

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

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!