C#-ban úgy beolvasni pár számot, hogy nem tudom előre, hogy az mennyi lesz?
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
1. bekéred előre, hogy hány számot akar beírni és annyit kérsz tőle.
2. elkezded bekérni a számokat és amikor nem ír be semmit, csak egy entert üt, akkor befejezettnek veszed az adatfelvételt.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Nem a legsikerültebb ötlet privátban küldözgetni a kódot, pláne nekem, aki pont a C#-hoz értek legkevésbé, meg a többi nyelvhez se nagyon. De ha már így alakult, miért nekem kell az elejét-végét hozzátoldanom, hogy kerek egész legyen belőle?
A szándék #3 mindkét javaslatára hasonlít, de a program elég furcsára sikeredett:
1. Létrehozol egy dbszam nevű double-változót, számlálóként. Mióta szokás darabszámot törttel megadni?
2. A while-ciklusban megpróbálod még egyszer létrehozni (ez az, amit nem vesz be a fordító).
3. Nem világos, mi a célod az említett létrehozási kísérlettel:
a. Vagy egy másik változót akarsz, akkor a ciklus sosem ér véget, ha előzőleg nullánál nagyobb számot adtál meg, mivel a dbszam ciklusválozót nem csökkented.
b. Vagy a már létező változót akarod használni úgy, hogy 0 érték bevitele jelentse a ciklus végét -- ez esetben meg minek kellett előre bekérni a darabszámot?
4. A ciklusváltozó beolvasására létrehozod az s stringet, amit utána már nem használsz, hanem kérsz egy s2 nevű újabbat a ciklusbeli beolvasásra. Tulajdonképpen mindkettő fölösleges, de a második feltétlenül. Használhatnád végig ugyanazt.
Tettem egy kísérletet a programod gatyába rázására, de meg kell mondjam, ez még semmire sem garancia. Valószínű, hogy a törtszámok megadásának módja a rendszeredtől függ (az enyémen például tizedesvesszőt vár). Ennek az orvoslására is van mód, de a probléma rendes lekezelése legyen egy másik feladat, az eddigiekkel való összehasonlításra alkalmasabb ez a minimális megoldás. Két változatban így néz ki:
using System;
public class Program {
static void Main(string[] args) {
Console.Write("Hány számot szeretnél bevinni? ");
int dbszam = Convert.ToInt32(Console.ReadLine());
while(dbszam > 0) {
Console.Write("Kérem a következő számot: ");
double szam = Convert.ToDouble(Console.ReadLine());
dbszam--;
}
Console.WriteLine("Ciklus vége");
}
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
using System;
public class Program {
static void Main(string[] args){
Console.Write("Hány számot szeretnél bevinni? ");
int dbszam = Int32.Parse(Console.ReadLine());
while(dbszam > 0) {
Console.Write("Kérem a következő számot: ");
double szam = double.Parse(Console.ReadLine());
dbszam--;
}
Console.WriteLine("Ciklus vége");
}
}
Ha béna a kódom, javítsa valaki, aki jobban ért hozzá.
Köszönöm a választ, sikerült már netről utánna néztem.Kétszer akartam deklarálni a változót.
Köszi aki hasznos választ adott,ment a zöld pipa.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
1. A kérdésben szereplő problémának (dinamikus mennyiségű adatbekérés) abszolút semmi köze nem volt a Te problémádhoz (duplikált változónév).
2. A névduplikációt a fordító nagyon egyértelműen jelzi.
3. Nem osztottál meg semmilyen kódot, így abszolút esélyünk sem lett volna kitalálni, hogy mi a hiba.
Összefoglalva: De, teljesen fölösleges volt ez a kérdés. Te sem emiatt kaptál választ a problémádra (hanem, mert valakinek privátban elküldted a kódod), és más sem fog ebből a kérdésből tanulni semmit.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!