Pomocy! Szukanie w tablicy dwuwymiarowej

0

Potrzebuję pomocy.
Mam już wykonany program zawierający tablicę dwuwymiarową, posiadającą 5 kolumn i 100 wierszy. Liczby wpisywane są losowo a następnie posortowane rosnąco. Nie wiem co zrobić, aby program po otrzymaniu od użytkownika wartości sprawdził, czy jest ona w tablicy (odpowiedział TAK lub NIE) i następnie podał jej pozycję w tablicy.

2

Pętla w pętli.
Jedna po wierszach druga po kolumnach, do tego prosty warunek i masz.

0
some_ONE napisał(a):

Pętla w pętli.
Jedna po wierszach druga po kolumnach, do tego prosty warunek i masz.

A mógłbyś napisac jakby to wyglądało na przykładzie?

1

Ktoś wie w sumie jak prościej?

#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;

int main() {
	srand(time(NULL));
	int tab[5][100];
	int liczba = 10;
	
	cout << "Wspolrzedne szukanej liczby:" << endl;
	for(int i=0;i<5;i++)
		for(int j=0;j<100;j++){
			tab[i][j] = rand() % 100 + 1;
			if(tab[i][j]==liczba)
				cout << "Wsp: [" << i << "][" << j << "]" << endl;
		}
	
	return 0;
}

https://ideone.com/f7CW4b

0

Dziękuję najmocniej. A w jaki sposób posortować te liczby rosnąco? (te wylosowane, zanim zapytamy o szukaną liczbę)

1

A tak?

#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
 
void wypisz(int (*tab)[10]){
	for(int i=0;i<5;i++){
    	for(int j=0;j<10;j++)
    		cout << tab[i][j] << "\t";
		cout << endl;
	}
}
 
int main() {
    srand(time(NULL));
    int tab[5][10];
    int liczba = 10;
 
    //    Wypełnianie tablicy danymi
    for(int i=0;i<5;i++)
        for(int j=0;j<10;j++)
            tab[i][j] = rand() % 100 + 1;
 
    cout << "Przed posortowaniem:" << endl;    
    wypisz(tab);
 
    //    Sortowanie
    int temp=0;
    for(int i=0;i<5;i++)
        for(int l=i;l<5;l++)
            for(int j=0;j<10;j++)
                for(int k=j;k<10;k++)
                    if(tab[i][j]>tab[i][k]){
                        temp=tab[i][j];
                        tab[i][j]=tab[i][k];
                        tab[i][k]=temp;
                        j=0;
                    }
                    else if(tab[i][j]>tab[l][j]){
                        temp=tab[i][j];
                        tab[i][j]=tab[l][j];
                        tab[l][j]=temp;
                        i=0;
                    }
 
 
    cout << "Posortowana tablica:" << endl;    
    wypisz(tab);
 
    return 0;
}

https://ideone.com/XXtJdo

3

ekhem

#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;

int main() {
	default_random_engine gen;
	size_t width, height;
	struct { int min, max; } rand;
	cin >> width >> height >> rand.min >> rand.max;
	uniform_int_distribution<int> dist(rand.min, rand.max);
	vector<int> tab(width*height);

	generate(begin(tab), end(tab), bind(dist, gen));
	sort(begin(tab), end(tab));
	
	auto is_num_in_tab = find(begin(tab), end(tab), num) != end(tab);
	return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1