Hogyan kell megszámolni az x-eket (ebben a feladatban)? C# programozás
C# programozás:
Mivan akkor ha beolvasok egy fáljt egy 1 oszlopos tömbbe(15 soros és 20 széles), (pl 1 a tömb egyik sora: xxoxoxoxoxoxooxxxxox) és megszeretném számolni , (pl ebben az esetben) hogy hány db x van a tömbben? Ez csak azért kérdéses mert ha így írom be :
int xdb = 0;
for (int i = 0; i < foglaltsag.Lenght; i++)
{
if (foglaltsag[i] == "x")
{
xdb++;
}
}
Console.WriteLine(xdb);
Console.ReadLine();
Nem mellesleg ha karakterként keresném az x-et , akkor sem fogadja el , mert char és a string nem fér össze a hibaüzenet szerint.
int x = 0;
for (int i = 0; i < foglaltsag.Length; i++)
{
if (foglaltsag[i]='x')
{
x++;
}
}
Console.WriteLine(x);
Console.ReadLine();
( a program többi rész csak a beolvasás) akkor nem fogja megszámolni az x-eket, mert maga a sor nem egyenlő x-el. De a contains parancs sem jó, mert ha 1 szer megtalálja a többit figyelmen kívül hagyja. És azért nem írtam több dimenziós tömbbe , mert nem engedi szétválasztani magát a sorokat(pl úgy hogy:x x o x o x o x o x o x o o x x x x o x ) ( és ha még sikerülne is akkor egy rohadt hosszú if-es sorozattal tudnám csak megkeresni az összes x -et).
így olvasnám be ha 2 dimenziós lenne(tudom hogy hosszú de így tanultam meg):
string[,] foglaltsag = new string[15,20];
int sorszam2 = 0;
StreamReader sr2 = new StreamReader("foglaltsag.txt");
while (!sr2.EndOfStream)
{
string[] sor2 = sr2.ReadLine().Split(' ');
foglaltsag[sorszam2, 0] = Convert.ToString(sor2[0]);
foglaltsag[sorszam2, 1] = Convert.ToString(sor2[1]);
foglaltsag[sorszam2, 2] = Convert.ToString(sor2[2]);
foglaltsag[sorszam2, 3] = Convert.ToString(sor2[3]);
foglaltsag[sorszam2, 4] = Convert.ToString(sor2[4]);
foglaltsag[sorszam2, 5] = Convert.ToString(sor2[5]);
foglaltsag[sorszam2, 6] = Convert.ToString(sor2[6]);
foglaltsag[sorszam2, 7] = Convert.ToString(sor2[7]);
foglaltsag[sorszam2, 8] = Convert.ToString(sor2[8]);
foglaltsag[sorszam2, 9] = Convert.ToString(sor2[9]);
foglaltsag[sorszam2, 10] = Convert.ToString(sor2[10]);
foglaltsag[sorszam2, 11] = Convert.ToString(sor2[11]);
foglaltsag[sorszam2, 12] = Convert.ToString(sor2[12]);
foglaltsag[sorszam2, 13] = Convert.ToString(sor2[13]);
foglaltsag[sorszam2, 14] = Convert.ToString(sor2[14]);
foglaltsag[sorszam2, 15] = Convert.ToString(sor2[15]);
foglaltsag[sorszam2, 16] = Convert.ToString(sor2[16]);
foglaltsag[sorszam2, 17] = Convert.ToString(sor2[17]);
foglaltsag[sorszam2, 18] = Convert.ToString(sor2[18]);
foglaltsag[sorszam2, 19] = Convert.ToString(sor2[19]);
sorszam2++;
}
sr2.Close();
és így ha 1dimenziós :
string[] foglaltsag = new string[15];
int sorszam2 = 0;
StreamReader sr2 = new StreamReader("foglaltsag.txt");
while (!sr2.EndOfStream)
{
string[] sor2 = sr2.ReadLine().Split(' ');
foglaltsag[sorszam2] = Convert.ToString(sor2[0]);
sorszam2++;
}
sr2.Close();
A válaszokat előre is köszi :)
1) változók létrehozása
xc int
sr streamreader
2) adatok beolvasása
a sorokat karakterenként is be lehet olvasni a
sr.Read();
utasítással
if (sr.Read() == "X") {xc++;}
3) lezárod a fájlt srt és kiirod az adatokat
string sor = "xxoxoxoxoxoxooxxxxox";
int xcount = sor.ToUpper().ToArray().Where(c => c.Equals('X')).Count();
Console.WriteLine(string.Format("x-ek száma: {0}", xcount));
A fenti kód ezt fogja kiírni: "X-ek száma: 12"
using System;
using System.Linq;
class Program
{
static void Main()
{
int countOfX = "xxooxxxoooxoxxoxoxox".CountOf('x');
Console.WriteLine("Count of x is {0}", countOfX);
}
}
public static class StringExtensions
{
public static int CountOf(this string str, char searchedChar)
{
return str.Count(ch => ch == searchedChar);
}
}
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!