Skocz do zawartości
adam_M

c++ tablice

Rekomendowane odpowiedzi

Witam .. mam taki dylemat ..

mam za zadanie utworzyc tablice jednowymiarową aby wartośsci były :

a1=1

a2=0

a3=3

a4=0

itd .. czyli parzysty zero nieparzysty wartość

 

zrobiłem cos takiego :

 int tab[10];void main(){  for (int i=0;i<11;i++)    tab[i]=i;     for (int i=0;i<11;i++)      if(i%2!=0)       cout << tab[i]<<endl;     else       cout <<"0"<<endl; getch();}

i faktycznie wypisuje 1 0 3 0 5 0 7 0 9

ale obawiam sie ze to zero to nie wartosc tablicy .. ale po prostu .. nie wiem "znak jakis" ..

i nie wiem jak zrobic zeby wartosc co drugiego była zero ... jak daje w tym miejscu tab=0 to wyskakują

1

3

7

9

 

prosze o pomoc :) w tym kodzie :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

po pierwsze deklarujesz tablice 10 elementow a w petli for krokow jest 11:

od 0 do i<11 czyli 10 to daje 11 wartosci, to czesty blad, zaraz sie zajme reszta

for (int i=0;i<11;i++)     tab[i]=i;
wpisuje ci do tablicy wartosci od 0 do 10, powinno byc oczywiscie do 9.

wiec juz jest nie tak, powinien wpisywac to co chcesz na poczatku

for(int i=0;i<9;i++){tab[i]=i+1;tab[++i]=0;}
napisz czy dziala bo nie chce mi sie sprawdzac

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

#include <iostream>using namespace std;int main() {     int tab[10];    for (int i=0;i<10;i++)      tab[i]=(i%2==0)?0:i;        for (int i=0;i<10;i++)       cout << tab[i]<<endl;     cin.get();    return 0;}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

czesc FIDO .. mam prosbe moglbys mi wyjasnic co to oznacza :

tab[i]=(i%2==0)?0:i;

dokladnie mi chodzi o ten pytajnik

a nawet cały wiersz bo ciut nie kumam

wartosc tablicy jest równa 0 przy i gdy reszta z dzielenia jest zero ? czy dobrze rozumuje ?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

mam kolejne pytanko ... bo cos mnie zaskoczylo

zadeklarowalem tablice powyzej funkcji main ... :

int tab[10];main(){ for (int i=1;i<=10;i++)   if (i%2!=0)      tab[i]=i;    for (int i=1;i<=10;i++)      cout << tab[i]<<endl;  getch();}

i wyskoczylo 1 0 3 0 5 0 7 ... czyli tak jak chcialem

potem odwrocilem

 int tab[10]; main() {   for (int i=0;i<11;i++)     tab[i]=i;      for (int i=0;i<11;i++)       if(i%2!=0)        cout << tab[i]<<endl;        getch(); }

i wyszlo 13579 czyli nieparzyste ...

moglby mi ktos wyjasnic .. co program robi zmieniajac ifa z przodu na koniec ?

 

i co to dalo ze deklaracja tablicy jest powyzej funkcji main ?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

i wyszlo 13579 czyli nieparzyste ...  

moglby mi ktos wyjasnic .. co program robi zmieniajac ifa z przodu na koniec ?

Ano bardzo duzo sie zmieni. Nie wiem czemu ale w ogole troche zle robisz wciecia.

Jakby zrobic je tak:

int tab[10] = {0};main(){  for (int i=1;i<10;i++)    if (i%2!=0)      tab[i]=i;  for (int i=1;i<10;i++)    cout << tab[i]<<endl;  getch();}
Teraz lepiej widac, ze sa to 2 osobne for'y, pierwszy wypelnia tablice odpowiednimi liczbami i tutaj if sluzy odpowiedniemu jej wypelnieniu.

W nastepnym przykladzie:

int tab[10]; main() {   for (int i=0;i<10;i++)     tab[i]=i;   for (int i=0;i<10;i++)     if(i%2!=0)       cout << tab[i]<<endl;        getch(); }
To juz jest zupelnie co innego... Najpierw wypelniasz tablice liczbami (liczba taka jaki indeks w tablicy) a potem w petli wyswietlajacej stosujesz if'a zeby wyswietlic tylko nieparzyste.

 

Pozatym poprawilismy Cie, ze miales zle warunek zakonczenia petli i znowu masz ten blad! Tablica 10 elementowa ma indeksy od 0 do 9, a nie do 10, jak by wynikalo z Twoich kodow.

i co to dalo ze deklaracja tablicy jest powyzej funkcji main ?

Ano tyle, ze teraz jest to zmienna globalna, a nie lokalna (dla funkcji main). Jesli jest "na zewnatrz" to jest ona tez widoczna z zadeklarowanych przez Ciebie funkcji, natomiast wersja "wewnatrz" jest widoczna tylko w main'ie.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

dziekuje wam za pomoc :D

udalo mi siem zdac w koncu tego c++

.. jusz wiecej wam nie bede zawracal czachy w tej materii ...

pozdrawiam :)

ps.

aa dostalem zadanko :

napisac tablice :

1 0 0 0 0 0

0 2 0 0 0 0

0 0 3 0 0 0

0 0 0 4 0 0

0 0 0 0 5 0

0 0 0 0 0 6

 

int tab[6][6];void main(){   for (int i=0;i<6;i++)   for (int j=0;j<6;j++)      if(i==j)       tab[i][j]=i+1;  for (int i=0;i<6;i++)   {   for (int j=0;j<6;j++)      cout << tab[i][j]<<"  ";         cout<<endl;    }  getch();}

a drugie :)

 

0 0 0 0 0 1

0 0 0 0 2 0

0 0 0 3 0 0

0 0 4 0 0 0

0 5 0 0 0 0

6 0 0 0 0 0

 

inny warunek :)

if(i==5-j)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...