Funkcja zwracająca tablicę.

0

Potrzebuję napisać program działający na tablicach. Program musi zawierać 3 funkcje:

  1. generuje tablicę liczb losowych
  2. zapisuje tablicę z 1 funkcji do pliku
  3. odczytuje tablicę z pliku do programu.
    Wszystkie 3 funkcje potrafię napisać, tylko nie wiem jak zrobić, żeby pierwsza funkcja zwracała tablicę i jak ją wykorzystać w 2 funkcji.
    Z góry dziękuję za pomoc
1

Kto ci powiedział że pierwsza musi zwracać tablice?

void generuj(int tb[],size_t tbsize) { for(size_t i=0;i<tbsize;++i) ... }
1
std::array<>
0

Z tym już sobie poradziłem, wielkie dzięki za pomoc.
Mam jeszcze jeden problem- program ten będzie tworzył w sumie 6 plików tekstowych, po jednym w każdej iteracji pętli for. Mogę jakoś zmienić nazwę każdego kolejnego pliku, tzn tak, że stworzy mi pliki "1.txt", "2.txt" i tak dalej?

0

Da się to zrobić w 1 pliku oddzielając treść poprzednich wartości za pomocą nowej linii ew. jakimś znakiem - stwórz jeden plik i go nadpisuj.
#raz
#dwa
#trzy

1
char filename[64];
sprintf(filename,"%d.txt",i);
0

Źle się chyba wyraziłem. Mam 2 funkcje- wypelnij, zapisz. Wypełnij ma jako argument tablicę i wypełnia ją losowymi liczbami. Zapisz ma jako argument nazwę pliku i tablicę i zapisuje podaną tablicę do pliku o danej nazwie. W mainie mam użyć pętli żeby wywołać funkcję 6 razy, za każdym razem tworząc osobny plik. Mój main wygląda tak:

int main(){
double tab[1000000];
    int i, maks=1000000;
    for(i=100; i<=maks; i*10){
    wypelnij(tab, i);
    zapisz(nazwa, tab, i);
}
0

I w czym problem? Musisz tylko w pętli zmienić wartość nazwa (i w ogóle gdzieś tą zmienną zdefiniować, bo zakładam, że nie jest globalna) i tyle.

0
int main()
  {
   char nazwa[]="plik.txt";
   static double tab[1000000];
   wypelnij(tab,sizeof(tab)/sizeof(*tab));
   zapisz(nazwa,tab,sizeof(tab)/sizeof(*tab));
   return 0;
  }

Odradzam polskich nazw w programach.

0

Tyle że to stworzy tylko jeden plik, o nazwie "plik.txt".
@kq, tylko jak to zrobić, żeby po każdej iteracji zmieniało na inną?

1

Musisz zmieniać zawartość nazwa, np. za pomocą sprintf jak pokazał @_13th_Dragon, std::stringstream, lub samego std::string i funkcji std::to_string.

string nazwa;
int index = 0;
while(true){
    stringstream x;
    x << nazwa << index;
    //cout << x.str() << endl;
}

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