Kezdőoldal » Számítástechnika » Programozás » Visual studio hibajelentés...

Visual studio hibajelentés nélkül leállítja a kód futattását (c# probléma)?

Figyelt kérdés

Egy adott sor mellett piros pont jelenik meg és lilán kiszínezi, illetve lent kiírja a véltozók értékét:


int max(int[] a)

{

int maxv = 0;

int maxp = 0;

int j = 0;

while (j < 10)

{

if (maxv<a[j])

{

maxv = a[j];

maxp = j; //ezt színezi be

}

j++;

}

return maxp; }


Nagyon új vagyok még az ide-ben és a nyelvben is, minden segítséget nagyra értékelek.



2017. okt. 4. 14:24
 1/5 anonim ***** válasza:

Gondolom mert az átadott tömb mérete kisebb, mint 10.

Nem szokás méret nélkül átadogatni tömböket.

2017. okt. 4. 14:46
Hasznos számodra ez a válasz?
 2/5 A kérdező kommentje:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;


namespace ConsoleApp14

{

class Program

{

static Random r = new Random();

static void Main(string[] args)

{

int[] array = new int[10];


rng(array);

display(array);


Console.WriteLine(max(array));



void rng(int[] a)

{

for (int i = 0; i < 10; i++)

{

int number = r.Next(1, 11);

if (number >= 7)


a[i] = 0;

else a[i] = r.Next(1, 11);



}

}

void display(int[] a)

{

for (int i = 0; i < a.Length; i++)

{

Console.WriteLine(a[i]);

}


}


int max(int[] a)

{

int maxv = 0;

int l = 0;


for (int j=0; j<10; j++)

{

if (maxv<a[j])

{

maxv = a[j];

l = j;

}


}

return l; }

Console.ReadLine();

}

}

}

2017. okt. 4. 15:38
 3/5 anonim ***** válasza:

Az, hogy lokális függvényeket használtál, (ami C# 7.0-s feature) az gondolom teljesen szándékos, másképp hogy is oldottad volna meg a problémát.

Nálam egyébként lefut hiba nélkül, csak rossz eredményt ad.

2017. okt. 4. 19:15
Hasznos számodra ez a válasz?
 4/5 anonim ***** válasza:
Ja, most nézem, hogy a végén csak az indexet írattad ki, nem a max értéket...
2017. okt. 4. 19:17
Hasznos számodra ez a válasz?
 5/5 anonim ***** válasza:
100%

Ez amit másodszorra másoltál be lefut nálam.

Nem értek annyira a c#-hoz, de szerintem nem a Main függvénybe akartad tenni a többi függvényed.

Érdemes amúgy a tömbbel foglalkozó függvényeknek csinálni egy saját osztályt, ha már ilyen szép objektumorientált nyelvet használsz.

Ez a max függvényed nem tudom, mit akar csinálni, de ha a tömbben lévő maximális elem kell, akkor azt az array.Max() beépített függvény megadja neked.


Tehát egy új .cs fájlba egy RandomArray nevű osztály, ami tartalmazza a tömböt, amit a konstruktor hoz létre:


class RandomArray

{

private static Random random;

private int[] array;


public RandomArray()

{

array = new int[10];

random = new Random();


for (int i = 0; i < 10; i++)

{

int number = random.Next(1, 11);

if (number >= 7)

{

array[i] = 0;

}

else array[i] = random.Next(1, 11);

}

}


public void displayArray()

{

for (int i = 0; i < array.Length; i++)

{

Console.WriteLine(array[i]);

}

}


public int getMaxElementOfArray()

{

return array.Max();

}

}


A Main függvényt tartalmazó osztály pedig:


class Program

{

static void Main(string[] args)

{

RandomArray arrayHandler = new RandomArray();

arrayHandler.displayArray();

Console.WriteLine("a legnagyobb elem: " + arrayHandler.getMaxElementOfArray());

}

}


Tehát ez elkészít egy példányt egy olyan osztályból, ami tartalmaz egy randomizált tömböt, meghívja a displayArray() függvényét, ami kiírja a tömböt, aztán elkéri és kiírja a legnagyobb elemét a tömbnek.

2017. okt. 4. 19:36
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!