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

Wyszukiwanie min i maks w tablicy dwuwymiarowej

Object Storage Arubacloud
0 głosów
1,763 wizyt
pytanie zadane 7 maja 2019 w C i C++ przez Asderh Nowicjusz (170 p.)

Witam, czy byłby ktoś w stanie pomóc w znalezieniu liczby maksymalnej i minimalnej z tablicy dwuwymiarowej ? Rozmiar tablicy wczytuje z pliku, są to dwie liczby 10 i 15. Problem w tym, że nie za bardzo wiem jak wśród tych liczb znaleźć liczbe maksymalną i minimalną, żebym mógł ją zapisać do nowego pliku

#include <iostream>
#include <fstream>
#include <cstring>

using namespace std;

int ilosc_wierszy, ilosc_kolumn;


    void Wczytaj(string nazwa_pliku)
    {
        ifstream dane;
        dane.open(nazwa_pliku.c_str());
        if(dane.good())
        {
            //Tutaj wpisujemy kod odczytu danych z pliku
            cout << "Wczytujemy dane" << endl;
            dane >> ilosc_wierszy >> ilosc_kolumn;
            cout << "Dane wczytano" << endl;
            cout << endl;
            dane.close();
            return;
        }
    }



    void Zapisz(string nazwa_pliku)
    {
        ofstream dane;
        dane.open(nazwa_pliku.c_str());
        if(dane.good())
        {
            //Tutaj wpisujemy kod odczytu danych z pliku
            cout << endl;
            cout << "Zapisujemy dane" << endl;
            dane << ilosc_wierszy << " " << ilosc_kolumn;
            cout << "Dane zapisano" << endl;
            dane.close();
            return;
        }
    }


int main(void)
{
    Wczytaj("body2_ascii.txt");
    cout << "Ilosc wierszy: " << ilosc_wierszy << endl;
    cout << "Ilosc kolumn: " << ilosc_kolumn << endl;
    cout << endl;

    int **tab;
    tab = new int *[ilosc_wierszy];

    for(int i = 0; i < ilosc_wierszy; i++)
    {
        tab[i] = new int [ilosc_kolumn];
    }

    //TWORZENIE TABLICY ALOKOWANEJ DYNAMICZNIE
    for(int i = 0; i < ilosc_wierszy; i++)
    {
        for(int j = 0; j < ilosc_kolumn; j++)
        {
            tab[i][j] = i+j;
        }
    }

    //WYPISYWANIE DANYCH Z TABLICY
    for(int i = 0; i < ilosc_wierszy; i++)
    {
        for(int j = 0; j < ilosc_kolumn; j++)
        {
            cout << tab[i][j] << "";
        }
        cout << endl;
    }

    //USUWANIE TABLICY
    for(int i = 0; i < ilosc_kolumn; i++)
        {
            delete [] tab[i];
        }
    delete [] tab;


    Zapisz("dane_zapisane.txt");

    return 0;
}

 

3 odpowiedzi

0 głosów
odpowiedź 7 maja 2019 przez I_Love_Program Nowicjusz (180 p.)
Jeżeli dobrze zrozumiałem to wystarczy przejść po wszystkich wierszach i kolumnach i szukać czy jest mniejsza od najmniejszej jaką dotąd znalazłeś i analogicznie z większą
0 głosów
odpowiedź 8 maja 2019 przez niezalogowany
edycja 8 maja 2019

Jak byś miał tablicę prostokątna intów to można tak:

int * wsk={nullptr};
  	wsk=&tab[0][0];

    std::pair<int*,int*> para;
    para=std::minmax_element(wsk, wsk+(ilosc_kolumn * ilosc_wierszy)); 
//std::minmax_element(a,a+wym) --> #include <algorithm>

    std::cout << "min = " << *para.first << ", max = " << *para.second << '\n';

https://en.cppreference.com/w/cpp/algorithm/minmax_element

0 głosów
odpowiedź 8 maja 2019 przez kalczur Gaduła (4,320 p.)
    //SZUKANIE NAJWIĘKSZEJ I NAJMNIEJSZEJ WARTOŚCI
    
    int tab_min = 100;
    int tab_max = -100;

    for(int i = 0; i < ilosc_wierszy; i++)
    {
        for(int j = 0; j < ilosc_kolumn; j++)
        {
            if( tab[i][j] > tab_max) tab_max = tab[i][j];
            if( tab[i][j] < tab_min) tab_min = tab[i][j];
        }
    }

    cout<<"min: "<<tab_min<<endl;
    cout<<"max: "<<tab_max<<endl;

 

Podobne pytania

0 głosów
1 odpowiedź 328 wizyt
pytanie zadane 14 lutego 2018 w C i C++ przez Kurczak Użytkownik (940 p.)
0 głosów
1 odpowiedź 2,122 wizyt
0 głosów
2 odpowiedzi 1,148 wizyt

92,556 zapytań

141,404 odpowiedzi

319,563 komentarzy

61,942 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...