• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

W jaki sposób mam wyznaczyć i wypisać wartość maksymalną tablicy w poniższy kodzie?

VPS Starter Arubacloud
0 głosów
1,157 wizyt
pytanie zadane 1 sierpnia 2015 w C# przez piotr_s Nowicjusz (160 p.)
static void Main(string[] args)
        {
            int[] tab = new int[5];
             

            for (int i = 0; i < tab.Length; i++)
            {
                Console.Write("Wpisz {0} indeks tablicy: ", i);
                 int liczba = int.Parse(Console.ReadLine());
                 tab[i] = liczba;
                 if (i == 4)
                 {
                     Console.Write("Wartości tablicy w koleności wpisywania: ");
                     for(int j=0; j<tab.Length; j++)
                     {
                         Console.Write(tab[j]);
                     }
                     Console.WriteLine();
                     Console.Write("Wartości tablicy w odwrotnej kolejności: ");
                                              Array.Reverse(tab); //odwróć tablicę
                     for (int k = 0; k < tab.Length; k++)
                     {
                        Console.Write(tab[k]);
                     }
                     Console.WriteLine();
                     int max = tab[0];
                     Console.Write("Największa wartość tablicy to liczba ");
                     for (int l = 0; l < tab.Length; l++)
                     {                          
                         if (tab[l] > tab[0])
                         {
                             max = tab[l];
                         }
                              if (l == 4)
                                  Console.Write(max);
                          
                         }                     
                 }
            }

4 odpowiedzi

+1 głos
odpowiedź 1 sierpnia 2015 przez BlaQ Nowicjusz (160 p.)
Jak nie masz nic przeciwko Linq, to najprościej będzie użyć metody tab.Max(), która zwróci ci najwyższą wartosć w tablicy (wartość, nie indeks w tablicy).
0 głosów
odpowiedź 1 sierpnia 2015 przez Marek Węglarz Nowicjusz (220 p.)
coś w tym stylu

int max=tab[0];

for(int i=1;i<tab.Lenght;i++)

     if(tab[i]>max) max = tab[i];
0 głosów
odpowiedź 1 sierpnia 2015 przez Dorion300 Szeryf (90,250 p.)
edycja 1 sierpnia 2015 przez Dorion300

Powinno być:

if (tab [l] > max) {
	max = tab [l];
}

Ponieważ porównywałeś non stop do pierwszego elementu w tablicy.

Warto wspomnieć że ten if(i == 4) jest w pełni niepotrzebny i nie optymalny.

Lepszym pomysłem jest aby po skończeniu pętli kontynuować a nie w trakcie pętli sprawdzać i w odpowiednim momencie wykonać.

Tu masz cały gotowy kod:

		static void Main (string[] args)
		{
			int[] tab = new int[5];


			for (int i = 0; i < tab.Length; i++) {
				Console.Write ("Wpisz {0} indeks tablicy: ", i);
				int liczba = int.Parse (Console.ReadLine ());
				tab [i] = liczba;
			}

			Console.Write ("Wartości tablicy w koleności wpisywania: ");
			for (int j = 0; j < tab.Length; j++)
				Console.Write (tab [j]);
			Console.WriteLine ();
			Console.Write ("Wartości tablicy w odwrotnej kolejności: ");
			Array.Reverse (tab); //odwróć tablicę
			for (int k = 0; k < tab.Length; k++)
				Console.Write (tab [k]);

			Console.WriteLine ();
			int max = tab [0];

			Console.Write ("Największa wartość tablicy to liczba ");
			for (int l = 0; l < tab.Length; l++)
				if (tab [l] > max)
					max = tab [l];   
			Console.Write (max);
			Console.ReadKey ();
		}

 

0 głosów
odpowiedź 2 sierpnia 2015 przez Orzech030 Użytkownik (780 p.)

Śą dwie metody jedna z wykorzystaniem pętli np for:

int max=0;
for(int i=0; i< tab.length;i++)
{
if(tab[i]>max)
max = tab[i];

}

lub z wykorzystaniem linq:

var max = tab.Max();

 

komentarz 3 sierpnia 2015 przez BlaQ Nowicjusz (160 p.)
Ustawienie max na 0 to nie najlepszy pomysł, bo tablica może mieć same ujemne wartości.

tab[0] albo int.MinValue byłyby dużo bezpieczniejsze.

Podobne pytania

0 głosów
2 odpowiedzi 108 wizyt
pytanie zadane 9 stycznia 2020 w HTML i CSS przez FilOON Użytkownik (680 p.)
0 głosów
4 odpowiedzi 908 wizyt
0 głosów
3 odpowiedzi 6,657 wizyt

92,452 zapytań

141,262 odpowiedzi

319,077 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...