Kezdőoldal » Számítástechnika » Programozás » Mi a megoldása?

Mi a megoldása?

Figyelt kérdés

Írj programot, mely kiírja a standard outputra a standard inputon érkező legnagyobb negatív és legkisebb pozitív számot. A standard inputon white space karakterekkel elválasztott egész számok érkeznek végjel nélkül. A program addig olvasson, amíg csak tud. Ha a bemeneten nem érkezik az adott feltételnek megfelelő szám (pl. nem jön egy pozitív sem), a program a kimenetre --- jelet írjon. Az elvárt kimenetet az alábbi példák demonstrálják:



Input: 2 4 -3 1 -5 8

Output: -3 1


Input: 22 0 5 4 7

Output: --- 4


Input: 0

Output: --- ---



2021. okt. 1. 12:10
 1/8 Pelenkásfiú ***** válasza:

Programnyelv?

Hol akadtál el?

2021. okt. 1. 12:13
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:
Milyen programnyelven?
2021. okt. 1. 12:46
Hasznos számodra ez a válasz?
 3/8 Pelenkásfiú ***** válasza:

C-ben írja, elküldte üzenetben...


Egyébként ennek a jelentésében én sem vagyok biztos:

"A program addig olvasson, amíg csak tud"

Egy sorban lehet több szám is, az kiderül a szövegből.

De mikor van vége? Ha üres sort olvasunk be?

2021. okt. 1. 12:53
Hasznos számodra ez a válasz?
 4/8 A kérdező kommentje:
Úgy addig csinálja hogy adok neki egy parancsot, és akkor while(scanf("%d", &a) == 1), teát amíg van beolvasandó a ertek
2021. okt. 1. 13:20
 5/8 Pelenkásfiú ***** válasza:

De ezt írja a feladat:

"A standard inputon white space karakterekkel elválasztott egész számok érkeznek végjel nélkül"


Ha a "scanf("%d", &a)"-nak beírod, hogy "1 2 3", akkor ezt egy számként fogja beolvasni a-ba, mint 123. Ez így biztosan nem jó.

2021. okt. 1. 13:23
Hasznos számodra ez a válasz?
 6/8 anonim ***** válasza:
Gondolom arra akart a tanár utalni, hogy nem tudjuk, hogy hány szám van a beolvasott sztringben, akármilyen hosszú lehet, és a számok között whitespace a delimiter. A bejött sztringet kell feldarabolni a whitespacek mentén. (Nekem most hirtelen az sscanf jut eszembe). A STDIN-t beolvasni egy scanf-el egy stringbe és utána azt feldolgozni már sscanf-el (pl. hasonlóan ahogy pl. a perlben a split működik).
2021. okt. 1. 14:11
Hasznos számodra ez a válasz?
 7/8 anonim ***** válasza:
42
2021. okt. 1. 14:27
Hasznos számodra ez a válasz?
 8/8 Pelenkásfiú ***** válasza:

Ez így egyesével olvassa a whitespace-el elválasztott számokat, \n-nél pedig megáll.

Kérdező: a privátban küldött válaszommal sikerült a min. és max. megállapítása és kiírása?


int a;

char str[20];

char c[1];


while (scanf("%s%c", str, c)) {

__ a = atoi(str);


__ printf("%d\n", a);


__ if (c[0] == 10) break;

}

2021. okt. 1. 15:42
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, 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!