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

Problem z tablicami

+1 głos
306 wizyt
pytanie zadane 4 lipca 2016 w C i C++ przez Gracjan Pasik Obywatel (1,810 p.)

Program ma wyznaczać największą liczbę, musi być oparty o tablicę.

Kompiluje się, ale jako m wyświetla liczbę z ramu, zamiast tą z tablicy liczba[].

#include <iostream>
#include <conio.h>
#include <cstdio>
#include <stdio.h>
using namespace std;


int main()
{
	int D, m;
	cin >> D;
	for (;D>0; D--)
	{
		int N;
		cin >> N;
		int liczba[200];
		int nr = 0;

		while(N>0)
		{
			cin >> liczba[nr];
            nr++;
			N--;
		}

		while (nr>=0)
		{
		    nr--;
            if (liczba[nr] > m)
                m = liczba[nr];

		}
        cout << m;

	}

}

 

2 odpowiedzi

+2 głosów
odpowiedź 5 lipca 2016 przez obl Maniak (51,300 p.)
wybrane 27 lipca 2016 przez Gracjan Pasik
 
Najlepsza

Błąd jest tutaj:

        while (nr>=0)
        {
            nr--;
            if (liczba[nr] > m)
                m = liczba[nr];
 
        }

Powinno być:

        while (nr > 0)
        {
            nr--;
            if (liczba[nr] > m)
                m = liczba[nr];
 
        }

bo w poprzedniej wersji indeksujesz po liczba[-1] i odwołujesz się do pamięci spoza tablicy.

Dwa, że m powinieneś zainicjalizować wartością początkową, a skoro szukasz największej liczby spośród wybranych przez użytkownika to wystarczy użyć biblioteki limits w następujący sposób:

int D, m = std::numeric_limits<int>::min();

Oczywiście trzeba załączyć na początku plik nagłówkowy limits

0 głosów
odpowiedź 5 lipca 2016 przez Dorion300 Szeryf (90,250 p.)
Ustaw początkową wartość zmiennej m na 0.

Podobne pytania

0 głosów
2 odpowiedzi 199 wizyt
pytanie zadane 16 października 2020 w C i C++ przez Kucharek Nowicjusz (150 p.)
0 głosów
1 odpowiedź 299 wizyt
pytanie zadane 26 kwietnia 2020 w C i C++ przez michhal1 Początkujący (270 p.)

93,695 zapytań

142,613 odpowiedzi

323,225 komentarzy

63,226 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...