Kezdőoldal » Számítástechnika » Programozás » Hogy lehet tömbbe tetszőleges...

Hogy lehet tömbbe tetszőleges végjelig adatot feltölteni?

Figyelt kérdés

A tömb létrehozása, adatok feltöltése megy. Azt nem értem, ha mondjuk van egy tömböm (legyen t[50]), amibe 50 adatot kér be egymás után, de én gondolok egyet és csak 15öt szeretnék beírni a programba, milyen végjellel, vagy hogyan tudom befejezni. Szóval nem úgy, hogy az 50-et átírom 15re, hanem 50 nagyságú a tömb és csak 15 adatot írok be aztán a végjellel befejezem...


Így néz ki eddig:


#include <stdio.h>

#include <stdlib.h>

#define MAX 50


int main(){

int t[MAX];

int i;

for(i=0;i<MAX;i++){

printf("Kerem a %d. szamot: ",i); scanf("%d",&t[i]);

}

}


Kérlek, ha nem tudsz értelmesen és segítőkészen hozzászólni akkor inkább ne is tedd. Teljesen kezdő vagyok és sehol nem találok erre megoldást, pedig biztosan triviális.

Köszönöm.



2016. nov. 21. 13:22
1 2
 1/12 anonim ***** válasza:
0%

Tényleg triviális.


A MAX-odat lecseréled 15-re.

2016. nov. 21. 13:29
Hasznos számodra ez a válasz?
 2/12 anonim ***** válasza:
0%
Természetesen csak a ciklusban, ha ez esetleg nem lett volna magától értetődő.
2016. nov. 21. 13:30
Hasznos számodra ez a válasz?
 3/12 anonim ***** válasza:

1. Jelölj ki egy végjelet, mondjuk a VEGJEL konstansba.

2. A ciklus előtt inicializálj egy logikai változót, ami azt mondja majd meg a ciklusnak, hogy mehet-e tovább.

3. A ciklus feltételét egészítsd ki úgy, hogy akkor maradjon bent a ciklusban, ha i<MAX és a 2. létrehozott változó igaz.

4. A ciklusmagban ne egyből a tömbbe kérd be a számot, hanem egy külön változóba.

5. Ellenőrizd, hogy a kapott szám =-e a végjellel. Ha igen, átbillented a logikai változót, egyéb esetben eltárolod a tömbbe.

2016. nov. 21. 13:31
Hasznos számodra ez a válasz?
 4/12 A kérdező kommentje:
Pont ezt írtam... Nem úgy akarom hogy kicserélem a tömb méretét (vagyis nem én adom meg hogy mennyi adatot írnak majd be), hanem mondjuk valaki 15 db adatot szeretne beírni és utána megszakítja.
2016. nov. 21. 13:33
 5/12 A kérdező kommentje:
#3 köszönöm :) Ha nem túl nagy kérés leírnád (vagy valaki más aki le tudja) ezt programnyelven is?
2016. nov. 21. 13:40
 6/12 anonim ***** válasza:

#3 vagyok


Konstanst már tudsz definiálni (ld. MAX), a végjel is menni fog. :) A for ciklus pedig valami ilyesmi lesz:


bool folytassuke = true;

for(i = 0; i < MAX && folytassuke; i++) { // ha van még hely ÉS eddig nem volt végjel

.. int n = szamot_beker(); // ezt is tudod már

.. if (n == VEGJEL) folytassuke = false; // végjel, nem megyünk tovább

.. else t[i] = n; // nem végjel, eltároljuk

}

2016. nov. 21. 13:46
Hasznos számodra ez a válasz?
 7/12 anonim ***** válasza:
0%

"Nem úgy akarom hogy kicserélem a tömb méretét "


Miért cserélnéd ki a tömb méretét azzal, ha a ciklus változóját átállítod?

2016. nov. 21. 13:49
Hasznos számodra ez a válasz?
 8/12 A kérdező kommentje:
Nagyon szépen köszönöm! :)
2016. nov. 21. 13:49
 9/12 A kérdező kommentje:
#7 Valószínűleg nem fogalmaztam túl jól a kérdésben. A végjelre voltam kíváncsi, nem más megoldásra. De a te válaszodat is köszönöm, megjegyzem hogy így is lehet, ha nem feltétel a végjel és előre tudom mennyit akarok megadni. :)
2016. nov. 21. 13:57
 10/12 anonim ***** válasza:
20%

Végülis ha akarnánk ez is elférne 1 sorban...


[link]

2016. nov. 21. 14:44
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!