2017-03-15 35 views
-1

我正在寫一段代碼,其中我有產生隨機數,並將其置於一個數組的函數從函數返回數組。我很遺憾如何使用指針,並會感謝任何幫助。使用指針在C

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

#define MAX_DATA_SIZE 10 
void generate_data(float input_buffer[]); /*prototyping the function*/ 

int main(void) 
{ 
    float input_buffer[MAX_DATA_SIZE + 2] = { 0 }; 
    /*calls the array and prints it*/ 
    return 0; 
} 

void generate_data(float input_buffer[]) 
{ 
    int no_of_data_points; 
    int function_ID = 0; 

    srand(time(NULL)); 

    no_of_data_points = 2 + rand() % (MAX_DATA_SIZE - 2 + 1); /*generates number of data points that ranges from 2 to MAX DATA SIZE*/ 
    function_ID = 1 + rand() % (4 - 1 + 1); /*generates function ID that ranges from 1 to 4*/ 

    input_buffer[0] = no_of_data_points; 
    input_buffer[1] = function_ID; 

    int i = 2; /*counter for input buffer array*/ 

    while (i <= no_of_data_points) { 
     input_buffer[i] = (float)rand()/RAND_MAX; 
     i++; 
    } 
    return input_buffer; 
} 
+0

你從什麼地方複製的代碼? –

+0

不,我自己寫的,我只是不知道如何實際調用函數@sourav –

+1

在這種情況下,你需要一本好書,教程或TA。他們都不在SO或不在話題。 –

回答

0

請檢查以下源代碼。在代碼中檢查註釋。

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

#define MAX_DATA_SIZE 10 
void generate_data(float input_buffer[]); /*prototyping the function*/ 

int main(void) { 
    float input_buffer[MAX_DATA_SIZE + 2] = { 0 }; 
    int i = 0; /*counter for input buffer array*/ 

    generate_data(input_buffer); /* Generate Random data*/ 

    while (i < input_buffer[0]+2) { /* Print arrey from the begining*/ 
     printf("input_buffer[%d] = %f\n",i,input_buffer[i]); 
     i++; 
    } 

    return 0; 
} 

void generate_data(float input_buffer[]) 
{ 
    int no_of_data_points; 
    int function_ID = 0; 

    srand(time(NULL)); 

    no_of_data_points = 2 + rand() % (MAX_DATA_SIZE - 2 + 1); /*generates number of data points that ranges from 2 to MAX DATA SIZE*/ 

    printf("------> %d\n",no_of_data_points); /* Just for understanding*/ 

    function_ID = 1 + rand() % (4 - 1 + 1); /*generates function ID that ranges from 1 to 4*/ 

    input_buffer[0] = no_of_data_points; 
    input_buffer[1] = function_ID; 

    int i = 2; /*counter for input buffer array*/ 

    while (i < no_of_data_points+2) { /* Store the "no_of_data_points" to array from i = 2*/ 
     input_buffer[i] = (float)rand()/RAND_MAX; 
     i++; 
    } 

    return; /* Return type is void*/ 
}