Визуальная студия 2017 srand () вылетает (онлайн компилятор работает) - PullRequest
0 голосов
/ 21 мая 2018

Я пробовал эти 3 типа кода.

1: вывод Visual Studio 2017: сбой приложения.

 time_t = t;
 srand((unsigned)time(&t)); 

2: вывод Visual Studio 2017: сбой приложения.

srand (time(NULL));

3: вывод Visual Studio 2017: обычная печать с последующим сбоем.

long t;
time(&t);
srand((unsigned)t);

Третий вариант выводит / выводит ошибку и выводит предупреждение о сборке: Ошибка отладки!Run-TimeCheck Failure # 2 -Stack вокруг переменной 't' поврежден

предупреждение C4333: 'function': несовместимые типы - от 'long *' до 'time_t * const' (попытался исправить с помощью time_t, ноприложение просто вылетает)

Все примеры работ на онлайн-компиляторе !! onlinegdb.com .Все тесты были выполнены с этим кодом ниже.

#define _CRT_SECURE_NO_WARNINGS
#define CON 10

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



float maxB(float v[], int n);

float maxB(float v[], int n) {
    float est;

    for (int i = 0; i < n-1; i++)
    {
        printf("[%d]: %.2f\n", i, v[i]);
        if (v[i] >= v[i + 1]) {
            est = v[i];
        }
        else
        {
            est = v[i + 1];
        }
    }
    return est;
}

main() {

    srand(time(NULL));

    float v[CON];
    int a;
    printf("how many vector positions to test?\n");
    scanf("%d", &a);
    while (a < 0 || a > CON ){
        printf("invalid input!how many vector positions to test?\n");
        scanf("%d", &a);
    }

    for (int i = 0; i < CON; i++){
        v[i] = (float)(rand() % 10);
    }
    printf("Biggest number %f", maxB(v, a));
} 

Итак ... что я должен сделать, чтобы использовать случайную функцию с visual studio?Должен ли я использовать другую версию?

1 Ответ

0 голосов
/ 27 февраля 2019

Решено, проблема была в компьютере, который я использовал, когда я проводил тест на другом компьютере, он работал!.

...