Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Inicjowanie zmiennej i przekazywanie tablicy do funkcji

Ostatnio zmodyfikowano 2018-03-19 22:07
Autor Wiadomość
Moz4rt
Temat założony przez niniejszego użytkownika
Inicjowanie zmiennej i przekazywanie tablicy do funkcji
» 2018-03-19 21:24:39
Rozwiązuję zadanie: https://main2.edu.pl/c/konkurs-podstaw-algorytmiki/p/wes/
Kod:
C/C++
#include <iostream>

using namespace std;

int jumping( int klatka, int skok, int i, int x, int k[] )
{
    if( k[ i ] == true ) return x; //jezeli malpka jest na klatce z wartoscia true zwroc ilosc skokow
   
    k[ i ] = true; // przypisanie klatce na ktorej stoi malpa wartosci true
    x++; //zwieksz ilosc skokow
    i += skok; //zwieksz 'i' o dlugosc skoku
    if( i >= klatka )
         i = i - klatka; //jezeli i > klatka to odejmij wartosc klatka od 'i'
   
    jumping( klatka, skok, i, x, k );
}
int main()
{
    int z;
    cin >> z;
    int n[ z ], d[ z ];
    for( int i = 0; i < z; i++ )
         cin >> n[ i ] >> d[ i ];
   
    for( int j = 0; j < z; j++ )
    {
        int k[ n[ j ] ] = { }; //wypelnianie indeksow fals'ami
        cout << jumping( n[ j ], d[ j ], 0, 0, k ) << endl;
    }
    return 0;
}


Podczas zgłaszania programu w celu sprawdzenia możliwych błędów wyświetla mi się "a.cpp: In function 'int main()':
a.cpp:31:24: error: variable-sized object 'k' may not be initialized"

1. Podejrzewam, że błąd tkwi w wstawieniu tablicy w indeks tablicy (k[n[j]]), co może powodować problem w próbie przekazania tej tablicy (k) do funkcji. Dlatego chciałbym w jak najoptymalniejszy sposób rozwiązać problem, bez nowych zmiennych o wartości kolejnych tablic n.
2. Jeżeli warto coś zmienić w kodzie to proszę o sugestie.
P-170116
pekfos
» 2018-03-19 21:37:15
error: variable-sized object 'k' may not be initialized"
I w czym problem? Treść błędu wyraża się dość jasno - nie możesz takiej tablicy inicjalizować. Co więcej, nie możesz tak tworzyć tablicy, jest to błędny zapis w C++.

Do tego, twoja funkcja jumping nic nie zwraca w większości przypadków.

P-170118
Moz4rt
Temat założony przez niniejszego użytkownika
» 2018-03-19 21:49:42
Po prostu chciałem wiedzieć, czy jest jakiś sposób na przekazywanie do funkcji tablicy z tablicą w indeksie. Problem pojawił się ponieważ w C::B program "działał". Oczywiście domyślam się, że kompilator nie wyrzucił błędu i przyjął tablicę dla indeksu n[0].
P-170121
pekfos
» 2018-03-19 21:59:34
Jak napisałem, problem jest w tworzeniu tablic.
C/C++
int n[ z ], d[ z ];
int k[ n[ j ] ] = { };
Te zapisy są niepoprawne w C++.
» Kurs C++ » Poziom 2Tablice jednowymiarowe lekcja, czerwona ramka.
P-170122
Moz4rt
Temat założony przez niniejszego użytkownika
» 2018-03-19 22:07:35
Oto mi chodziło wielkie dzięki.
P-170123
« 1 »
  Strona 1 z 1