Wypełnianie tablicy

0

Jak wypełnić tablice jednowymiarową liczbami losowymi z zakresu 0-10 używając wskaźników?

0

A jak wypełniłbyś taką tablicę nie wykorzystując wskaźników?

4
int tb[16];
for(int *p=tb,*k=p+sizeof(tb)/sizeof(*tb);p<k;++p) *p=rand()%11;
3
#include <iostream>
#include <random>
#include <algorithm>
#include <functional>
using namespace std;

int main() {
    default_random_engine generator;
    uniform_int_distribution<> distro(0, 10);
    int tab[10];
    //w przypadku C-tablicy iteratory są wskaźnikami
    generate(begin(tab), end(tab), bind(distro, generator));

    for(int el: tab){
        cout << el << " ";
    }
    return 0;
}

Ewentualnie pomijając tablicę... kto lubi jednolinijkowce? :D

generate_n(ostream_iterator<int>(cout, " "), 10, bind(uniform_int_distribution<>(0, 10), default_random_engine{}));

http://ideone.com/5FWqHf

0

co to sizeof?

3
int tab[25];
mt19937 gen(random_device{}());
uniform_int_distribution<> dis(0,10);
generate(begin(tab), end(tab), bind(dis, gen));

http://melpon.org/wandbox/permlink/Lj6suVCVnuNkTOFD

2
C1000 napisał(a):

Nie używając wskaźników za pomocą pętli for
Genialne :D
Wiadomo, że za pomocą pętli - pokaż kod, jak Ty byś to zrobić mając za zadanie wypełnić zwyczajną tablicę takimi liczbami losowymi, bez jawnych wskaźników - potem pogadamy, jaka będzie różnica ze wskaźnikami.

1

używając wskaźników?

Nie używając wskaźników

Mam nadzieję, że wystarczy spełnić tylko jeden z tych warunków.

0

#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main()
{
srand(time(NULL));

int tab[9];

for(int i=1; i<=10; i++ )
{
tab[i]=rand()%11;

}
 cout<<"tab = ";

 for(int i=1; i<=10; i++)
 {
    cout<<tab[i]<<"  "; 

        }

return 0;

}

3

Masz tu UB, tablice są indeksowane od 0, nie od 1. tab[10] to odniesienie do jedenastego elementu dziesięcioelementowej tablicy.

Edit: po edicie to nawet 11. element 9-elementowej tablicy. Brawo.

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