Я пробовал эти 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?Должен ли я использовать другую версию?