Mitől nem megy a programom? C#
Egyszerűen nem értem mit rontottam el. :(
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _1
{
class Program
{
static void Main(string[] args)
{
int i, m= 0, f = 0, k = 0, j = 0, q = 0, a = 0, s = 0, x = 0, u = 0, h = 28;
int[] n = new int[h];
Random y = new Random();
for (i = 0; i < h; i++)
{
n[i] = y.Next(-10, 10);
if (n[i] > 0)
{
a = 1 + a;
}
if (n[i] < 0)
{
q = 1 + q;
}
if (n[i] == 7)
{
j = 1 + j;
}
s = n[i] + s;
if (n[i] < 0)
{
k = k + n[i];
}
Console.WriteLine();
f = n[0]; m = n[0];
for (i = 1; i < 10; i++)
{
if (n[i] > f)
{
f = n[i];
}
if (n[i] < m)
{
m = n[i];
}
}
if (n[i] > x)
{
x = n[i];
}
if (n[i] < u)
{
u = n[i];
}
}
Console.WriteLine("a, pozitívek {0}", a);
Console.WriteLine("a, negatívok {0}",q);
Console.WriteLine("b, hetes {0}",j);
Console.WriteLine("c, összeg {0}",s);
Console.WriteLine("c, átlag {0}",s / h);
Console.WriteLine("d,negatív átlag: {0}",k / q);
Console.WriteLine("e, kissebbik: {0}", u);
Console.WriteLine("e, nagyobbik: {0}", x);
Console.WriteLine("h, minimum{0} maximum{1}", m, f);
Console.ReadLine();
}
}
}
Vélhetően a nem megfelelő kapcsos zárójelezések okozhatják a problémát.
Például látok sok if-et az első for cikluson belül, ráadásul a másik for ciklus is benne van.
A második for ciklus pedig nem tartalmazza az összes if-es adatszerkezetet, ami utána van, csak az első for ciklus tartalmazza ezeket.
Tényleg jó lenne tudni, hogy mi a program célja, de a kiiratásokból arra a következtetésre jutok, hogy adatok közötti kapcsolatokról van szó, ezen kívül a min.-max. kiválasztás tétele van terítéken.
Mégha működne is, nem célravezető ez a programírás.
Könnyebben olvashatónak kellene lennie.
Ha ez a GYK hibája, akkor persze ez tárgytalan.
A működésképtelenséget a cikluson belüli - az első 10 elem minimumát/maximumát kereső - ciklus okozza: ugyanaz a ciklusváltozója. Ki kellene szedni a ciklusból, vagy felszámolni és más módon megkeresni az első 10 szám minimumát/maximumát (mondjuk egy feltétellel ellenőrzöd, hogy hányadik számnál jársz).
Egyébként teljesen áttekinthetetlen a kód - és ez nem csak a Gyakorikérdésekbe indentálatlanul beömlesztés a felelős, hanem az egy betűs, funkciójukat nem tükröző változónevek is.
Mert egy ciklusváltozónál még elfogadható az i - mert szokás - de egy a helyett lehetne pozitivek, q helyett negativok, n helyett szamok (igen, ékezetek nélkül!), h helyett darab, satöbbi... (és vonatkoztassunk el attól, hogy változóneveket az "iparban" szokás angol nyelven irni - itt szemmel láthatólag kezdő tanulóról van szó).
@#2: „Ha ez a GYK hibája, akkor persze ez tárgytalan.”
A GyK-nak nem hibája, viszont ismert (és alighanem szándékosan megtartott) tulajdonsága. Az oldal fennállása óta állandóan kérjük a hasonló kérdéseknél, hogy a kérdező ne ide írja a kódot, és kivált ne a kérdésbe – arra valók a kódmegosztó oldalak, amelyek nem rontják el a behúzásokat, nem szúrnak be fölösleges sorokat, és nem kell miattuk a kérdés minden egyes oldalán búvárruhát ölteni, hogy le tudjunk merülni a válaszokig. De persze, hogy ez a kényelmesebb, meg a Józsi is tapló volt a múltkor, aztán mégis kapott választ, minek törje magát az ember...
Nix tárgytalan. A minimum az, hogy ne maradjon említetlenül.
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!