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);
}