Hogy lehet tömbbe tetszőleges végjelig adatot feltölteni?
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.
Tényleg triviális.
A MAX-odat lecseréled 15-re.
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.
#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
}
"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?
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!