ďťż

Ładny brzuch

Mam zalozmy taka linijke kodu:
for (i=0; i<srednia; i++) {
int tab[i];
cout<<"Podaj liczbe: ";
cin>>tab[i];
}
I teraz moje pytanie: Co zrobic, aby wyswietlic te wszystkie tablice ktore zadeklarowalem i nadalem wartosci?

"Podstawowa Prawda Informatyki: Jeżeli opanowałeś już wszystkie możliwe wyjątki, to zapomnisz do jakich reguł się one odnoszą."



A co dokładnie ma robić Twój program?

cytat:AniaMadzia napisał:

A co dokładnie ma robić Twój program?

Pare linijek kodu wymyslilem na poczekaniu, poniewaz tak czuje ze to sie gdzies moze czasem kiedys przydac. Co do programu to tak sie bawie. Co bedzie robil to jeszcze nie wiem :D Odpowie ktos na to pytanie? Nie byloby problemu gdyby nie to, ze zmienne traca waznasc za petla i nie mam najmniejszego pojecia jak to ominiac [:/]

"Podstawowa Prawda Informatyki: Jeżeli opanowałeś już wszystkie możliwe wyjątki, to zapomnisz do jakich reguł się one odnoszą."

To zadeklaruj zmienną przed pętlą.
A poza tym to ten kawałek kodu już z samego założenia jest zły i nawet tego nie skompilujesz :).
Przede wszystkim inicjujesz rozmiar tablicy jakąś przypadkową liczbą (nieistotne że i przyjmuje wartości z zakresu 0...srednia) - w C++ rozmiar tablicy inicjuje się stałą i nie pomoże w tym przypadku rzutowanie na const int musi to byc stała zainicjowana stałą :). Co innego kiedy alokujesz dynamicznie na stercie (new) wtedy możesz sobie pozwolic na taki komfort i w trakcie diałania ustalić rozmiar tej tablicy.
Kolejna sprawa to przepuśćmy że nawet udałoby ci się utworzyć tą tablicę (powiedzmy że zrobisz to za pomocą new/delete) to dla i=0... domyslasz się jaki rozmira będzie miała tablica ?? Gdzie tu sens??
A po trzecie to po cholere ci tablica w petli jak i tak zapisujesz tam raptem jedną zmienną.

Jeżeli chodzi ci o zapis wczytywanych składników do tablicy to wypada ją utworzyć przed pętlą, najlepiej dynamicznie jeśli rozmiar jest wyliczany w trakcie działania programu, wtedy w pętli mozna posłużyć sie wskaźnikiem no a podczas kolejnej iteracji możesz swobodnie przesuwać się po elementach.

KoDo
GG:3857769



cytat:qwas napisał:

Mam zalozmy taka linijke kodu:
for (i=0; i<srednia; i++) {
int tab[i];
cout<<"Podaj liczbe: ";
cin>>tab[i];
}
I teraz moje pytanie: Co zrobic, aby wyswietlic te wszystkie tablice ktore zadeklarowalem i nadalem wartosci?

Napisany przez ciebie kod nie zadziała (z powodów opisanych przez KoDo). Nawet, gdyby polecenie int tab[i] zadziałało, to przy pierwszym wykonaniu pętli zostałaby utworzona tablica z zarową ilością elementów (o ile kompilator na to pozwoli), a przy drugim wykonywaniu pętli pojawi się komunikat, że zmienna "tab" już istnieje i próbujesz ją drugi raz zadeklarować.
Jeżeli dobrze cię zrozumiałem, to chcesz mieć "n" tablic (powiedzmy "m" elementowych), i wypisać wyniki z wszystkich. Najlepiej to zrobić na tablicy dwuwymiarowej(czyli tablicy tablic).
Wczytywanie i wypisywanie mogłoby wyglądać tak:

#include <iostream.h>

int main()
{
int tab[m][n]; //m i n muszą być konkretnymi liczbami
int x,y;
// WCZYTYWANIE DANYCH
for (y=0;y<n;y++)
for (x=0;x<m;x++)
{
cout <<"Podaj liczbe do komorki["<<x<<"]["<<y<<"]: ";
cin >> tab[x][y];
cout <<"n";
}
// WYPISYWANIE DANYCH
for (y=0;y<n;y++)
{
for (x=0;x<m;x++)
{
cout <<tab[x][y]<<" ";
}
cout << "n";
}
system("PAUSE");
return 1;
}

Pozdrawiam i zapraszam na *** www.windowsik.prv.pl ***

cytat:
Nawet, gdyby polecenie int tab[i] zadziałało, to przy pierwszym wykonaniu pętli zostałaby utworzona tablica z zarową ilością elementów (o ile kompilator na to pozwoli

Nie pozwoli kiedy tablica zostanie tradycyjnie zadeklarowana jako np. int tab[0] ale problem pojawia się kiedy jest ona tworzona dynamicznie w takim przypadku kompilator nie jest w stanie tegio skontrolować.
Z ciekawości uruchomiłem ten kod (najpierw doprowadziłem go oczywiście do stanu w ktorym moznaby go uruchomić) i co się okazało, że podczas działania nie przejawiał on większych błędów ale przy którymś obiegu pętli został uruchomiony przypadkowy program (a może nieprzypadkowy bo zawsze zostało powielone okno konsoli :roll: )

KoDo
GG:3857769

Oki dzieki za pomoc. To jest tylko czesc kodu. Dlatego sa pewnie niescislosci, ale dzieki za pomoc.

"Podstawowa Prawda Informatyki: Jeżeli opanowałeś już wszystkie możliwe wyjątki, to zapomnisz do jakich reguł się one odnoszą."

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •