Wskaźnik, wypisywanie parzystych dwucyfrowych do tablicy.

0

Witam, pomógłby ktoś z rozwiązaniem tego zadania? :

Napisz program wypełniający tablicę N×N (N – wartość stała) losowymi liczbami naturalnymi,
parzystymi i dwucyfrowymi. Wykorzystaj w tym celu wskaźnik do tablicy.
Wypisz tą tablicę na ekranie, a następnie wykorzystując zwykły wskaźnik, wypisuj
cyklicznie m-ty element tej tablicy (m podane z klawiatury – inne w każdym cyklu),
i odpowiadające mu współrzędne w tablicy. Wypisywanie zakończ gdy użytkownik poda
ujemną wartość m.

0

a co do tej pory napisałeś?

0

Pokaż kod i komunikat błędu.

0

Nie mam praktycznie nic, poza wypisaniem zmiennych i pętli która się przerywa po wpisaniu wartości ujemnej. Nie rozumiem wskaźników i prosiłem o jakiś trop ewentualnie wskazówki.

0

arr[idx] -> *(arr + idx).

0
YooSy napisał(a):

arr[idx] -> *(arr + idx).

genialnie.

1

a losowe liczby parzyste dwucyfrowe zrobisz tak: (rand() % 45 + 5) * 2 - da Ci to zakres od 10 do 98

0
#include <iostream>
#include <ctime>

using namespace std;


int main ()
{
	srand (time(NULL));
	
	const int N = 5;
	
	int tab[N][N];
	int *wsk;
	
	for (int i =0; i<N; i++)
	{
		for (int j=0; j<N; j++)
		{
			int c = 2*(rand()%45+5);
			tab[i][j] = c;
			
			
			cout << tab[i][j]<< " ";
			
		}
		cout << endl;
	}
	
	while(true)
	{
		
	cout << "Podaj m"; 
	int m;
	cin >> m;
	
	if(m<0)
	break;
	}
}

Jak na razie mam tyle, nie wiem jak użyć tutaj wskaźnika oraz w jaki sposób wykorzystując ten wskaźnik i wypisywać m-ty wyraz tej tablicy.. Ktoś jest w stanie pomóc?

0

tab[i][j] = c; => *(*(tab + i) + j) = c

0

No okej, to teraz jak wypisywać m-ty wyraz, który podamy używając tego wskaźnika

0
If(m<N*N)
    cout<<*(&tab[0][0]+m)
0
Zakręcony Ogórek napisał(a):
If(m<N*N)
    cout<<*(&tab[0][0]+m)

No okej, pokazuje mi dany wyraz, ale jak przedstawić to za pomocą współrzędnych? ;v

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