Приостановка работы программы на определенное время - C (СИ)
Формулировка задачи:
Есть такая функция, чтобы приостановила выполнение программы на несколько секунд? А то два массива должны заполняться разными случайными числами, а они заполняются одинаковыми числами
Решение задачи: «Приостановка работы программы на определенное время»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_NUMBERS 1024
struct rn {
int * arr;
int * pNum;
int size;
} rnums;
int mix(const void * a, const void * b) { return rand() % MAX_NUMBERS - MAX_NUMBERS / 2; }
int init_numbers(int cnt){
int i;
if ( cnt < 1 || cnt > MAX_NUMBERS )
return -1;
if ( ( rnums.arr = (int*)calloc(cnt, sizeof(int)) ) == NULL )
return -1;
rnums.size = cnt;
for ( i = 0; i < rnums.size; ++i )
rnums.arr[i] = i;
srand(time(NULL));
qsort(rnums.arr, rnums.size, sizeof(int), mix);
rnums.pNum = rnums.arr;
return 0;
}
int get_num(void){
if ( rnums.pNum - rnums.arr >= rnums.size )
rnums.pNum = rnums.arr;
return *(rnums.pNum++);
}
void destroy_numbers(void){
free(rnums.arr);
}
#define SIZE 10
int main(void){
int a[SIZE], b[SIZE], i;
if ( init_numbers(99) ){
fprintf(stderr, "Can't init random numbers!\n");
exit(EXIT_FAILURE);
}
for ( i = 0; i < SIZE; ++i ){
a[i] = get_num();
b[i] = get_num();
}
printf("\nA: ");
for ( i = 0; i < SIZE; ++i )
printf("%02d ", a[i]);
printf("\nB: ");
for ( i = 0; i < SIZE; ++i )
printf("%02d ", b[i]);
printf("\n");
destroy_numbers();
exit(EXIT_SUCCESS);
}