Как при каждом перезапуске программы генерировать рандомную матрицу

Проблема заключается в том, что код генерирует рандомную матрицу только один раз, при каждом следующем запуске выводит то же самое. Пробовал использовать <time.h>, но тогда получаються три одинаковые матрицы.

#include "stdio.h"
#include "stdlib.h"
#define N 5
#define M 6
double in(int mas[N][M]);
double out(int mas[N][M]);
double ser(int mas[N][M]);
double themost(double a, double b, double c);

int main()
{
    int mas1[N][M], mas2[N][M], mas3[N][M];
    double a,b,c,d;

    printf("\t     Matrix 1\n");
    in(mas1);
    a = ser(mas1);
    printf("Sredne arifm dodatnih first: %.2f\n\n", a);
    printf("\t     Matrix 2\n");
    in(mas2);
    b = ser(mas2);
    printf("Sredne arifm dodatnih second: %.2f\n\n", b);
    printf("\t     Matrix 3\n");
    in(mas3);
    c = ser(mas3);
    printf("Sredne arifm dodatnih third: %.2f\n\n", c);
    /// seredne arifm
    d = themost(a,b,c);
    printf("Naibilshe seredne arifmeti4ne: %.2lf\n", d);
    printf("Matrix with naibilshe seredne arifm:\n\n");
    if (d == a) {
        printf("\t     Matrix 1\n");
        out(mas1);
    }
    if (d == b) {
        printf("\t     Matrix 2\n");
        out(mas2);
    }
    if (d == c){
        printf("\t     Matrix 3\n");
        out(mas3);
    }
    return 0;
}

/// functions
double in(int mas[N][M]) {
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < M; j++) {
            mas[i][j] = rand()%101-50;
            printf("%5d", mas[i][j]);
        }
        printf("\n \n");
    }
}
double out(int mas[N][M])
{
    for (int i = 0; i < N; i++){
        for (int j = 0; j < M; j++){
            printf("%5d",mas[i][j]);
        }
        printf("\n\n");
    }
}

double ser(int mas[N][M])
{
    double arifm,sum;
    int count = 0;
    for (int i = 0;i < N;i++){
        for (int j = 0;j < M;j++){
            if (mas[i][j]>0){
                sum = sum + mas[i][j];
                count++;
            }
        }
    }
    arifm = sum / count;
    return arifm;
}
double themost(double a, double b, double c)
{
    double m;
    m=a;
    if (m < b) m = b;
    if (m < c) m = c;
    return m;
}

И теперь код с использованием <time.h>

#include "stdio.h"
#include "stdlib.h"
#include "time.h"
#define N 5
#define M 6
double in(int mas[N][M]);
double out(int mas[N][M]);
double ser(int mas[N][M]);
double themost(double a, double b, double c);

int main()
{
    int mas1[N][M], mas2[N][M], mas3[N][M];
    double a,b,c,d;

    printf("\t     Matrix 1\n");
    in(mas1);
    a = ser(mas1);
    printf("Seredne arifm dodatnih first: %.2f\n\n", a);
    printf("\t     Matrix 2\n");
    in(mas2);
    b = ser(mas2);
    printf("Seredne arifm dodatnih second: %.2f\n\n", b);
    printf("\t     Matrix 3\n");
    in(mas3);
    c = ser(mas3);
    printf("Seredne arifm dodatnih third: %.2f\n\n", c);
    /// seredne arifm
    d = themost(a,b,c);
    printf("Naibilshe seredne arifmeti4ne: %.2lf\n", d);
    printf("Matrix with naibilshe seredne arifm:\n\n");
    if (d == a) {
        printf("\t     Matrix 1\n");
        out(mas1);
    }
    if (d == b) {
        printf("\t     Matrix 2\n");
        out(mas2);
    }
    if (d == c){
        printf("\t     Matrix 3\n");
        out(mas3);
    }
    return 0;
}

/// functions
double in(int mas[N][M]) {
    srand(time(NULL));
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < M; j++) {
            mas[i][j] = rand()%101-50;
            printf("%5d", mas[i][j]);
        }
        printf("\n \n");
    }
}
double out(int mas[N][M])
{
    for (int i = 0; i < N; i++){
        for (int j = 0; j < M; j++){
            printf("%5d",mas[i][j]);
        }
        printf("\n\n");
    }
}

double ser(int mas[N][M])
{
    double arifm,sum;
    int count = 0;
    for (int i = 0;i < N;i++){
        for (int j = 0;j < M;j++){
            if (mas[i][j]>0){
                sum = sum + mas[i][j];
                count++;
            }
        }
    }
    arifm = sum / count;
    return arifm;
}
double themost(double a, double b, double c)
{
    double m;
    m=a;
    if (m < b) m = b;
    if (m < c) m = c;
    return m;
}

Можете помочь это сделать? Делал в CLion.


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