Kezdőoldal » Számítástechnika » Programozás » Segitene valaki ebben a...

Segitene valaki ebben a feladatban?

Figyelt kérdés

Nagyon elrontottam a dolgokat és tegnap jöttem rá, hogy van egy csomó beadandóm, de közben egy vizsgára kéne készülnöm. Tegnap megcsináltam a feladatok felét kb, de ez túl nehéznek bizonyult. C-ben kéne leprogramozni és tudom, hogy tömbökkel kéne megoldani, de nekem mégse megy. Legalább ha nem is egy teljes megoldást, de akkor valami segítséget kaphatnék, hogy hogyan kéne elindulnom rajta?

A feladat:

Írj programot, mely egész értéket olvas a bemenetről, és ezek közül a pozitívokat fordított sorrendben kiírja! Az adatsor végjele a 0 érték, legfeljebb 100 darab érték érkezhet (a végjel előtt).


Például: 2 -1 5 -7 -1 8 -3 0 -> 8 5 2



2021. okt. 4. 10:18
1 2
 1/13 anonim ***** válasza:
0%

Lehet, hogy nem segít sokat, de elküldöm a probléma Ring-beli megoldását:


lst = [2,-1,5,-7,-1,8,-3,0]

lstSort = sort(lst)

lstSortRev = reverse(lstSort)

for n = 1 to len(lstSortRev)

if lstSortRev[n] > 0

see "" + lstSortRev[n] + " "

else

exit

ok

next


Kimenet:

8 5 2

2021. okt. 4. 10:27
Hasznos számodra ez a válasz?
 2/13 anonim ***** válasza:
58%
2021. okt. 4. 11:01
Hasznos számodra ez a válasz?
 3/13 anonim ***** válasza:
82%
CalmoSoft: Nem állnál le minden kérdésnél a rajtad kívül senki által nem használt Ring nyelv reklámozásával? A kérdésben egyértelműen szerepelt: "C-ben kéne leprogramozni" egyértelműen nem ring nyelven akarta a kérdező. De ugyanígy a Fortran, Cobol, Assembly, DOS Batch, Rexx, PL/1, Pascal, Rugby, Go, C#, Basic, Visual Basic, Algol 60, Python, R, S, Java, Javascript, PHP, Perl, AWK nyelvű megoldások sem segítenek a kérdezőn.
2021. okt. 4. 13:41
Hasznos számodra ez a válasz?
 4/13 anonim ***** válasza:
0%
(3) Igazad van, elnézést kérek.
2021. okt. 4. 13:50
Hasznos számodra ez a válasz?
 5/13 anonim ***** válasza:
41%
2: Azért az a break ott elég csúnya! És az én értelmezésemben nem 100 db. pozítiv szám, hanem 100 db. érték érkezhet. A te programod 100 db. pozítiv számot olvas be, illetve 0-nál befejezi egy break-kel a futást.
2021. okt. 4. 13:54
Hasznos számodra ez a válasz?
 6/13 anonim ***** válasza:
41%

Az én programom 100 darab számot olvas be, nem száz darab pozitív számot. A feladatban egyértelműen az szerepelt, hogy "egész értékek" jönnek a bemenetről, és hogy "az adatsor végjele a 0 érték".

A break-nek pedig konkrétan az a lényege, hogy "idő előtt" megszakítsa egy ciklus futását. A break szerintem nem csúnya, hanem hasznos, de gondolom ez ízlés dolga, nem hiszem, hogy nagy meló átírni, ha valakinek csípi a szemét.


2-es voltam.

2021. okt. 4. 14:10
Hasznos számodra ez a válasz?
 7/13 anonim ***** válasza:
41%

6: "if (tomb[szamlalo]>0) szamlalo++;" csak akkor növeli a szamlalo nevű változót ha beolvasott szám tomb[szamlalo] pozítiv. Hiszen itt a szamlalo nevű változó nővelése az feltételtől függ. Azaz ha a beolvasott érték -5 akkor a tomb[szamlalo]>0 feltétel nem teljesül, a szamlalo nem növekszik, és a következő szám beolvasása ugyanabba az indexű elembe kerül mint az előző. Ld még:

"scanf("%i", &tomb[szamlalo]);" sor. Ez beolvas egy int. értéket és elhelyezi a tomb szamlalo indexű elemébe. Majd jön az a feltétel, hogy ha a beolvasott érték tomb[szamlalo]==0 akkor break-el és kiugrik a ciklusból.

2021. okt. 4. 14:47
Hasznos számodra ez a válasz?
 8/13 anonim ***** válasza:
41%

Így van, de te azt írtad, hogy a program 100 pozitív számot "olvas be", ami nem igaz, mert beolvassa a negatív számokat is, csak nem tárolja el őket.

Ugyanis az a feladat, hogy a beolvasott pozitív számokat kell fordított sorrendben kiírni. Ezért, ha negatív a beolvasott szám, akkor nem kell növelni a számlálót, így a következő beolvasott szám ugyanoda fog kerülni a tömbben, felülírva a jelenlegi negatív értéket. Ha nullát olvastunk, akkor kilépünk.

Így kilépés után már elegendő vakon végiglépkedni a tömbön (visszafelé), és készen van a feladat. A szamlalo értékét persze előtte csökkenteni kell, hiszen az vagy az utolsó beolvasott nullára mutat, vagy 100 az értéke, mert végigolvastuk a tömböt.

2021. okt. 4. 15:23
Hasznos számodra ez a válasz?
 9/13 anonim ***** válasza:
41%

"100 pozitív számot "olvas be", ami nem igaz, mert beolvassa a negatív számokat is, csak nem tárolja el őket."


Ez nem igaz, mert ha van benne egy rakás negatív szám akkor jóval több mint 100 db. számot olvas be. A te programod továbbra is 100 db. pozítiv számot olvas be. A negatív számokat meg eldobja ez is igaz, hogy beolvassa de bele se számolja a 100 db-ba. így nem megoldása a feladatnak.

2021. okt. 4. 15:31
Hasznos számodra ez a válasz?
 10/13 anonim ***** válasza:
57%
Igazad van, tényleg elszabtam.
2021. okt. 4. 15:39
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!