Daniel_Zhang 发表于 2021-8-10 23:07:58

问一个很简单的问题

要求是: Random generation of an array with double-precision floating-point numbers (随机生成具有双精度浮点数的数组);

下面是我的思路,但是生成的数字并不是双精度的啊

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

double *generate_array(int value){

    double random_value;
    double *array = malloc(value);
    srand ( time ( NULL));

    for (int i = 0; i < 10;i++){
      random_value = (double)rand();
      printf("%f\n", random_value);
    }
   
    return array;
}

int main()
{

    double *array = generate_array(10);


    return 0;
}

人造人 发表于 2021-8-10 23:32:31

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

double *generate_array(int value) {
    double *array = malloc(sizeof(double) * value);
    for (int i = 0; i < value; i++){
      array = (double)rand() / RAND_MAX;
    }
    return array;
}

int main()
{
    srand(time(NULL));
    double *array = generate_array(10);
    for (int i = 0; i < 10; i++){
      printf("%lf\n", array);
    }
    free(array);
    return 0;
}

Daniel_Zhang 发表于 2021-8-10 23:50:26

人造人 发表于 2021-8-10 23:32


大佬,我有个问题一直卡住了,就是第 17 行那里,我如何让 i < 一个变量,例如 array 的长度

在 python 里面直接就是 len(array),在 c 里面我就不大会了

相当于我要打印整个 array,无论 array 有多长

人造人 发表于 2021-8-11 00:07:09

Daniel_Zhang 发表于 2021-8-10 23:50
大佬,我有个问题一直卡住了,就是第 17 行那里,我如何让 i < 一个变量,例如 array 的长度

在 python...

用一个变量记录数组的长度
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

double *generate_array(int value) {
    double *array = malloc(sizeof(double) * value);
    for (int i = 0; i < value; i++){
      array = (double)rand() / RAND_MAX;
    }
    return array;
}

int main()
{
    srand(time(NULL));
    size_t array_length = 10;
    double *array = generate_array(array_length);
    for (size_t i = 0; i < array_length; i++){
      printf("%lf\n", array);
    }
    free(array);
    return 0;
}

Daniel_Zhang 发表于 2021-8-11 00:11:57

人造人 发表于 2021-8-11 00:07
用一个变量记录数组的长度

牛皮,我一直在尝试 sizeof,怎么都不对{:10_250:}

人造人 发表于 2021-8-11 00:18:34

Daniel_Zhang 发表于 2021-8-11 00:11
牛皮,我一直在尝试 sizeof,怎么都不对

还可以效仿 c 风格字符串
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>

double *generate_array(int value) {
    double *array = malloc(sizeof(double) * (value + 1));
    for (int i = 0; i < value; i++){
      array = (double)rand() / RAND_MAX;
    }
    array = NAN;
    return array;
}

int main()
{
    srand(time(NULL));
    double *array = generate_array(10);
    for (size_t i = 0; !isnan(array); i++){
      printf("%lf\n", array);
    }
    free(array);
    return 0;
}

Daniel_Zhang 发表于 2021-8-11 00:30:28

人造人 发表于 2021-8-11 00:18
还可以效仿 c 风格字符串

真牛啊,膜拜大佬{:10_266:}

人造人 发表于 2021-8-11 00:38:17

Daniel_Zhang 发表于 2021-8-11 00:30
真牛啊,膜拜大佬

^_^

连帅帅 发表于 2021-8-11 17:24:48

Daniel_Zhang 发表于 2021-8-11 00:30
真牛啊,膜拜大佬

这是真大佬{:10_336:}
页: [1]
查看完整版本: 问一个很简单的问题