Заполить массив числами из диапазона

Заполнить целочисленный массив a[N] числами из диапазона [A; B] и массив b[N] дробными числами из диапазона [C; D]. Вывести массивы на экран в две строки. Вывести массивы в файл в два столбца в формате "array_int[индекс] = значение; array_double[индекс] = значение;"

В чём может быть проблема? Ни в консоль ни в файл ничего не выводиться, но если убрать строчки fprintf() и fclose(), то тогда хотя бы вывод в консоль работает корректно.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define N 25
#define A 1
#define B 100
#define C 101
#define D 200

int main(void) {

    srand(time(0));
    int a[N];
    double b[N];

    FILE *file;
    file = fopen("output.txt", "w");

    for (int i = 0; i < N;i++){
            a[N] = A+rand()%(B-A+1);
            printf("%d ", a[N]);
            fprintf(file, "array_int[%d] = %d; ", i, a[N]);
    }

    printf("\n");

    for (int i = 0; i < N;i++){
            b[N] = C+rand()*(D-C+1.0)/RAND_MAX;
            printf("%.3lf ", b[N]);
            fprintf(file, "array_double[%d] = %.3lf\n", i, b[N]);
    }

    fclose(file);

    return EXIT_SUCCESS;
}

Ответы (0 шт):