Nasumični niz
Napisati program koji generiše niz pseudoslučajnih celih brojeva u zadatom opsegu i ispisuje ih na standardni izlaz.
Ulaz
Program se pokreće komandnom linijom oblika
./main <n> <min_vrednost> <max_vrednost> <seme>
gde je n broj elemenata niza, <min_vrednost> i <max_vrednost> definišu zatvoreni opseg vrednosti koje treba generisati, a <seme> je početno seme za generator slučajnih brojeva (srand).
Izlaz
Na standardni izlaz ispisati tačno n generisanih brojeva razdvojenih razmakom i završenih novim redom.
U slučaju greške, na standardni izlaz za greške ispisati odgovarajuću poruku i završiti program sa statusom neuspeha (1).
Primer
command line
./main 5 1 6 42
stdout
1 1 6 4 5
Primer
command line
./main 3 10 20
stderr
Error: Invalid number of arguments.
Rešenje
main.c
#include <stdio.h>
#include <stdlib.h>
int random_between(int min, int max)
{
return rand() % (max - min + 1) + min;
}
int main(int argc, char *argv[])
{
if (argc != 5) {
fprintf(stderr, "Error: Invalid number of arguments.\n");
exit(EXIT_FAILURE);
}
int n = atoi(argv[1]);
int min_value = atoi(argv[2]);
int max_value = atoi(argv[3]);
int seed = atoi(argv[4]);
srand(seed);
for (int i = 0; i < n; i++) {
printf("%d ", random_between(min_value, max_value));
}
printf("\n");
exit(EXIT_SUCCESS);
}