gpt4 book ai didi

从单独的函数创建和列出数组

转载 作者:太空宇宙 更新时间:2023-11-04 04:14:47 26 4
gpt4 key购买 nike

我被要求定义一个接受两个参数的函数 array_print():

  • int *ptr 表示指向整数数组的指针

  • int array表示数组的大小

并列出数组的元素而不返回任何值;

接受一个参数的函数 array_create():

  • int array 表示数组的大小

并返回指向这个数组的指针;我需要在 main() 中调用这个函数来创建一个数组,并调用 array_print() 来打印它的元素。

这是我的代码:

#include <stdio.h>
#include <stdlib.h>
#define MAX 100
#define SIZE 10

void array_print(int *ptr, int array) {
for (int i = 0; i < array; i++){
printf("Value of array[%d] is %d",i, *ptr);
printf("\n");
}
}

int* array_create(int array) {
int *t = malloc(SIZE * sizeof(int));
for (int i = 0; i < SIZE; i++) {
t[i] = rand() % MAX;
}
return t;
}

int main() {
int *t = malloc(SIZE * sizeof(int));

array_create(SIZE);
array_print(t, SIZE);
free(t);
return 0;
}

我应该在区间 (0, MAX) 中获取输出随机元素,但我却得到了这个。

Value of array[0] is 0
Value of array[1] is 0
Value of array[2] is 0
Value of array[3] is 0
Value of array[4] is 0
Value of array[5] is 0
Value of array[6] is 0
Value of array[7] is 0
Value of array[8] is 0
Value of array[9] is 0

有人可以更正我的代码,使其输出随机元素而不是 0。

最佳答案

您的代码中存在一些问题。

  1. 您在 mainarray_create 中都调用了 malloc。在 main 中,您只需要:

    int *t = array_create(SIZE);
  2. array_print 中,您始终取消引用数组中的第一个元素。这将做到:

    printf("Value of array[%d] is %d\n",i, ptr[i]);

关于从单独的函数创建和列出数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53346044/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com