Elementy w tablicy w jęz. C++


(rgabrysiak) #1

Wiem że mam sklerozę.

Proszę o podpowiedź gdzie jest błąd


(Ludr) #2

Elementy tablicy w C/C++ są numerowane od zera.

Więc tablica int tab [2]; ma 2 elementy tab[0] i tab[1]

Dostajesz śmieci ponieważ odwołujesz się poza zakres tablicy którą zdefiniowałeś.

int tab[2]; 

cout <<"Podaj liczbe: "; 

cin >> tab[0]; 

cout <<"Podaj liczbe: "; 

cin >> tab[1]; 

cout<<"Pierwszy element to: "<
cout<<"\nDrugi element to: "<

(rgabrysiak) #3

To wiem tylko czemu jak podaję mu dwie liczby on wyświetla ich sporo więcej?


(Cieplok) #4

i wszystko powinno być w porządku.

int tab[2]; 

cout <


O napisaniu takiego kodu nie powinieneś nawet pomyśleć a co dopiero go napisać NIE WOLNO odwoływać się do elementów tablicy o niepoprawnym indeksie ponieważ przez to odwołujesz się przez to bliżej nieokreślonego elementu pamięci a co się wtedy stanie nie potrafisz określić.

C++ nie ma kontroli zakresu w tablicach więc sam powinieneś kontrolować indeksy.

Jeśli chcesz wypisać te dwa elementy to piszesz:

[code]cout << tab[0] << " " << tab[1] << endl;


(rgabrysiak) #5

Ok jeszcze jedno pytanie które mi się teraz pojawiło.Mam macierz 2x2 i chciałbym do niej wprowadzić liczby - to wiem zrobić podobnie jw.

Tylko jak wyświetlić ją w takiej formie jak na załączonym kodzie


(Fiołek) #6

Nie jestem pewien czy wiesz, próbujesz pobrać tablice od użytkownika(cin >> m[N]:wink: a powinieneś samą liczbę. Zresztą odwołujesz się poza rozmiar tej tablicy. Radzę poczytać co nieco o tablicach.

Nie rozumiem pytania. Chcesz wyświetlić tablicę tak jak na załączonym kodzie, czyli jak? Opisz to dokładniej.


(rgabrysiak) #7

Ok drobny bład efekt który chcę osiągnąć to

A chodzi mi o możliwość wpisywania liczb przez użytkownika i przypisania ich do macierzy a następnie wyświetlenie jw.

chciałem pobraną liczbę przypisać do tablicy

Narazie rozgryzłem to tak

Ale nadal nie wiem jak wyświetlić te liczby jako macierz

np.

0 1

2 3


(Fiołek) #8
for (int k=0; k
{

   for (int i=0; i
   {

      cout << m[k][i] <<"\t";

   }

   cout<<"\n";

}

Przecież te pętle wyświetlają tą macierz.

Co do pobierania to czy nie łatwiej robić to podobnie jak wyświetlanie(tzn. zamiast wyświetlać pobierać dany)? Oj wydaje mi się, że łatwiej.


(rgabrysiak) #9

tak chciałem zrobić ale coś mi to kiepsko wychodzi, jeśli mógłbym poprosić o chwilę cierpliwości o podpowiedź

Z góry dziękuję