tablice dwuwymiarowe - pytania

0

Hej
Mam tablicę dwuwymiarową wypełnioną jedynkami. I teraz:

  1. jak wymienić losową jedynkę na zero?
  2. jak zliczyć wszystkich jedynki w tablicy?
  3. jak zliczyć ilość jedynek w wierszu/kolumnie?
0

nie wiem w jakim języku piszesz ale zakładam, że w C++

1:

#include <iostream>
#include <ctime>

using namespace std;


int main()
{
	int tab[3][3]; // 2-wymiarowa tablica

	for(int i = 0; i < 3; i++) // wypełnienie jej jedynkami 
		for(int j = 0; j < 3; j++)
			tab[i][j] = 1;

	srand((unsigned)time(0));
	int wiersz = rand() % 3 ; // losowanie nr wiersza
	int kolumna = rand() % 3 ; // losowanie nr kolumny

	tab[wiersz][kolumna] = 0; // wstawienie 0 w odpowiedni (wylosowany) wiersz i kolumnę 
       

 
  1. Zliczanie jedynek w tablicy:
#include <iostream>
using namespace std;


int main()
{
	int zlicz = 0;
	
	int tab[3][3]; // tablica 2-wymiarowa
	for(int i = 0; i < 3; i++) // wypełnienie jej jedynkami
		for(int j = 0; j < 3; j++)
			tab[i][j] = 1;

	for(int i = 0; i < 3; i++)
		for(int j = 0; j < 3; j++)
			if(tab[i][j] == 1) // warunek, jeżeli tab[i][j] == 1 to zlicz++
				zlicz++;
	cout << "Jedynek w tablicy: " << zlicz << "\n"; //wyswietlenie ilości jedynek w tablicy (zlicz zawiera tę ilość)
 
  1. Zliczanie jedynek w wierszu i kolumnie
#include <iostream>
using namespace std;


int main()
{
	int zlicz_wiersz = 0;
	int zlicz_kolumne = 0;
	
	int tab[3][3]; // tablica 2-wymiarowa
	for(int i = 0; i < 3; i++)
		for(int j = 0; j < 3; j++) 
			tab[i][j] = 1; // wypełnienie jedynkami


	for(int i = 0; i < 3; i++)
	{
		zlicz_kolumne = 0;
		zlicz_wiersz = 0;
		for(int j = 0; j < 3; j++)
		{
			if(tab[j][i] == 1) // zlicza kolumny gdzie jest 1
				zlicz_kolumne++;
			if(tab[i][j] == 1) // zlicza wiersze gdzie jest 1
				zlicz_wiersz++;
		}
		cout << i+1 << " kolumna: " << zlicz_kolumne << "\n"; // dlatego i+1 bo i numeruje od 0 
		cout << i+1 << " wiersz: " << zlicz_wiersz << "\n"; // to samo co up
	}
 

Co do punktu 3 na pewno jest jakiś inny szybszy lepszy sposób ale na tym poziomie nauki tylko tyle umiem ;)

P.S - > Nie bierz kopiuj -> wklej, ponieważ nie dokańczałem funkcji main, tzn nie ma 'return 0' ani końcowych klamer, to jest tylko taki wycięty kod z visuala ; D

0

Dzięki wielkie, zaraz spróbuję to dopasować do tego co mam i w razie czego będę pytać dalej ;)

0

Dobrze, mam pierwszy problem.
Wymiar tablicy mam określony jako 'n'. Nie mogę więc dać rand() %3, tylko powinno mi losować do (n-1) jeśli dobrze rozumiem... Jak to zrobić?

0

rand() %n nie działa. wychodzi coś poza zakres

0

podaj dokładny błąd ale myślę że wychodzi Ci poza zakres tablicy. Jak deklarujesz tą Twoją tablicę o wymiarze 'n' ?
Pokaż błędy jakie Ci wywala, ew. kod

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