visual studio 2017 srand()崩溃(在线编译工程)

问题描述 投票:0回答:1

我尝试了这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失败#2 - 变量'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随机功能?我应该使用其他版本吗?

c visual-studio random visual-studio-2017 srand
1个回答
0
投票

解决了,问题是我正在使用的计算机,当我用另一台机器进行测试时,它工作了!

© www.soinside.com 2019 - 2024. All rights reserved.