Kezdőoldal » Számítástechnika » Programozás » Programozás C nyelven (3...

Programozás C nyelven (3 feladat)?

Figyelt kérdés

Sziasztok. Nem egy ingyenélő vagyok, akinek az a fontos,hogy kész legyen a házija, de ezeknek egyszerűen neki se tudok állni.

A program kérjen be karaktereket EOF végjelig, majd írja ki azokat. Kiíráskor hagyja ki a soremelés karaktereket.


A program kérjen be egy sor szöveget, majd betűnként külön sorba írja ki azt.


A program kérjen be karaktereket EOF végjelig, majd írja ki azokat szavanként külön sorba.

Valaki elmagyarázná nekem ezeket? Do while, while illetve for ciklusokról tanulunk.



2013. nov. 3. 13:28
 1/6 anonim ***** válasza:

Nagyszerű. Ezek közül a filebeolvasáshoz a while ciklust használjuk, ami elöltesztelő, mivel a file elvileg lehet üres is. Tehát a filebeolvasás tipikusan ugy néz ki, hogy while(not eof(f))... Most a pontos C szintaxisra nem emlékszem, rég használtam.

Ehhez szükséged lesz egy megfelelő adattípusra, ami a karakter. Ebbe kell beolvasni a fenti ciklusban.

Ha egyben akarod kiírni őket a végén, akkor kell egy karaktertömb, amiből válogatsz.

A két feladat algoritmikusan ugyanaz, kiírás közben kell figyelni, az egyiknél ha soremelés (10), akkor nem írod ki, a másiknál ha szóköz, akkor helyette \n-t írsz ki.

2013. nov. 3. 13:34
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:

...kell egy karaktertömb, amiben tárolod, és abból írod ki.


Így két ciklus lesz, tehát érdemes megszámlálni egy n változóban, hogy hány karaktert olvastál, és a második ciklus így már lehet FOR.

(Az előző.)

2013. nov. 3. 13:36
Hasznos számodra ez a válasz?
 3/6 A kérdező kommentje:

Karaktertömbökről még nem tanultunk..pedig egyetem ..:)

Írok egy feladatot, amit már megoldottam, úgy hátha egyszerűbb lesz a dolog.

Ez volt a feladat: A program kérjen be karaktereket EOF végjelig. Határozza meg, hogy hány darab nem betű karaktert adtunk meg.

És így oldottam meg:

#include <stdio.h>

#include <stdlib.h>

int main () {

char c, kb=0;

while (c!=EOF){

c=getchar();

if(c>='0' && c<='9') kb++;

}

printf("számkarakterek száma=%d\n",kb);

system ("pause");

}

2013. nov. 3. 13:39
 4/6 anonim ***** válasza:
Ha ne, tanultatok tömböket, akkor valószínűleg az az elvárás, hogy a beolvasott karaktert röptében írd ki a képernyőre, úgy még egyszerűbb is megoldani, csak kell bele egy if (az első esetben a 10-es karakterre, a másodikban a szóközre). Ebben az esetben a feladat szövege pontatlan, mert így a "majd" szóval az EOF után inkább úgy érteném, hogy mindent beolvas, majd mindent kiír, de nem hiszem, hogy tömb nélkül ezt várná a tanárod.
2013. nov. 3. 13:42
Hasznos számodra ez a válasz?
 5/6 A kérdező kommentje:

Sikerült megcsinálni a 2. és a 3. feladatot, tömbösítéssel.

Már csak az 1.-t kéne megoldani

2013. nov. 3. 14:38
 6/6 anonim ***** válasza:

A "mag":


while (scanf("%c",&c)!=EOF) {

_if (c!='\n') printf("%c",c);

}


A parancssorban az eof-ot Ctrl+Z-vel, vagy F6al tudod írni, külön sorba kell.

2013. nov. 3. 14:47
Hasznos számodra ez a válasz?

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!