Hogyan lehetne ezt leprogramozni C#-ban egyszerűen?
1.feladat: Kérjünk be neveket addig amíg üres sort nem kap a program és írassuk ki a leghosszabbat!
2.feladat: Kérdjünk be számokat ameddig a 0-t nem kap a program és írassuk ki a legkisebbet!
3. feladat: Kérdjünk be neveket és hozzá tartozó életkorokat majd míg üres sort nem kap a program és írassuk ki a legidősebb nevét!
Először tanulok C#-ban és éppen a while-t tanuljuk így ezzel kellene megcsinálni. Nagyon sokat bajlódtam már vele nagyon jól jönne egy kis segítség! Előre is köszönök minden megoldást!
Jó volna tudni, eddig mire jutottál. Nem vagyok egy programozó zseni, de előljáróban a feladatokhoz do-while-ot javaslok, és tisztázni kellene, hogy egyáltalán értjük-e az adatok bevitelének módját, és az alapvető string metódusokat.
Azt kell észrevenni, hogy nincs szükség se tömbre, se max-kereső függvényre. Ehelyett egy változóban lehet tárolni az addig volna legnagyobb/leghosszabb/legidősebb stb. adatokat, és a végén azt kiiratni.
Kiindulásnak az első feladat:
static void Main(string[] args)
{
string elozo = " ", big = "";
while (elozo != "")
{
elozo = Console.ReadLine();
if (elozo.Length > big.Length) big = elozo;
}
Console.WriteLine(big);
Console.ReadLine();
}
Valóban nem szükséges hozzá tömb! Szimplán elegendő megvizsgálni, hogy az aktuális nagyobb-e mint az eddigi legnagyobb! Persze másképp is megoldható... nyilván tömbbel nem, hiszen meg kell adni hány elemű lesz, de ezt előre nem tudhatod. Tehát minimum listára lenne szükség ha ezt a megoldást választod, de mint előttem is mondták, felesleges. (Hacsak nem további műveleteket szeretnél végezni a bevitt adatokon!)
*A "kérjük" szóban pedig nincs "d"!:)*
Véletlenül írtam a d-t kétszer is, kicsit szégyellem is miatta magam, hogy nem ellenőriztem le a végén, úgyhogy köszönöm a megjegyzést!! :)
Ilyen programot írtunk órán, amit értek:
using System;
class Prog
{
static void Main(string[] args)
{
int a = 1;
int összeg = 0;
while (a != 0)
{
Console.WriteLine("Kérek egy számot!");
a = int.Parse(Console.ReadLine());
összeg = összeg + a;
}
Console.WriteLine("Az összeg: {0}", összeg);
Console.WriteLine("Vége");
Console.ReadLine();
}
}
Ugye itt az volt a feladat, hogy számokat kérjünk be és amíg 0-t nem kap a progi addig adja össze a számokat és írja ki az összeget. A házimban ott akadtam el rögtön amikor bejött egy névnek a hossza, ugyanis ilyennel még egyáltalán nem foglalkoztunk, hogy egy szónak számoltassuk meg a karaktereit.
Végülis ebben szerettem volna segítséget hogy, ha valaki az elsőt ilyen mintán megírja akkor átbogarászva megérteném. :)
"ha több ugyan olyan hosszú van melyik a leghosszabb?"
- Erre a kérdésre a feladat megadlkotójának kell válaszolnia. Mivel lehet több ugyanolyan hosszú is, ezért a feladat valahol értelmetlen is.
Itt van átírva a második:
static void Main(string[] args)
{
int a = 1, b = int.MaxValue;
while (a != 0)
{
Console.WriteLine("Kérek egy számot!");
a = int.Parse(Console.ReadLine());
if (b > a && a != 0) b = a;
}
Console.WriteLine("A legkisebb: {0}", b);
Console.WriteLine("Vége");
Console.ReadLine();
}
A szobatársamnak is ugyan ez a feladata, és mi is ezzel bajlódunk.
Sikerült megcsinálni a kód alapján az első feladatot.
SimkoL nevű felhasználó válasza:
Kiindulásnak az első feladat:
static void Main(string[] args)
{
string elozo = " ", big = "";
while (elozo != "")
{
elozo = Console.ReadLine();
if (elozo.Length > big.Length) big = elozo;
}
Console.WriteLine(big);
Console.ReadLine();
}
Köszi!! :)
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!