0

我在理解如何做这种事情时遇到了一些问题。我已经创建了一个函数来执行逻辑部分,例如声明一个获取数组 [i] 值的整数,并且这个数字是从数组中随机挑选的(我认为)。无论如何,这是我所做的代码:

void array_test( int arr[]  , int size)
{
    int i;
    int random_number;

    for(i = 0; i<size; i++){
         random_number = (rand() %15 + 1);
         arr[i] = random_number;
    }

}

现在我的问题是如何使用另一个函数打印结果(代码有效,它确实打印出 1 到 15 之间的 15 个不同数字。我已将大小定义为 15,它位于函数原型参数上)?该函数将 achar output[]作为一个参数,一个 type 的数组int和一个 type 的大小int。看起来像这样output_result(char output[], int arr[], int size)

问题是我不明白我应该如何将前一个函数中的东西调用到 this 然后将其显示给用户。我承认这是一项任务,但我尝试了很多东西,但没有任何效果。问题是我必须使用 for 循环打印所有数组(?)值。它在这里只是变得混乱。我试图再次创建轮子,也就是说,通过从函数 array_test 复制粘贴代码,但是函数 array_test 将不需要实现。在下一次赋值之前不得使用指针。

这是主要功能:

int main() {
  int arr[SIZE]; 

  srand(time(0)); 
  array_test(arr, SIZE);
  print_array("This is an array\0", arr, SIZE);

  return 0; 
}
4

2 回答 2

4

如果要打印整个数组,可以执行以下操作:

编辑:根据您提供给我们的主要功能,您的print_values_ver1功能可能如下所示:

在您的主要功能中,要查找数组大小,您可以使用:

int size = sizeof(array) / sizeof(array[0]);

然后将您的打印功能传递给您,例如:

print_values_ver1("Some text\0", arr, size);

你的函数定义看起来像:

print_values_ver1(char[] output, int arr[], int SIZE) {

    for (int z = 0; z < SIZE; z ++) {
        printf("%d\n", arr[i]);
    }
}

请注意,这%dprintf函数的格式说明符(请参阅文档)。并且\n是一个newline角色。

此代码遍历数组的每个元素并打印值(每行一个值)。

于 2013-10-20T21:43:59.960 回答
1

像这样:(在线评论解释为什么-)

[编辑]添加output_results()

#include <ansi_c.h>

void array_test( int arr[]  , int size);
void output_result(int a[], int size);

int main(void)
{
    int arr[15]; 
    int size = sizeof(arr)/sizeof(arr[0]);
    array_test(arr, size);
    output_result(arr, size); 
    getchar();
    return 0;   
}

void output_result(int a[], int size)
{
    int i=0;
    for(i=0;i<size;i++) printf("a[%d] is:%d\n", i, a[i]);
}

void array_test( int arr[]  , int size)
{
    int i;
    int randomly_picked_number;


    for(i = 0; i<size; i++){
         randomly_picked_number = (rand() %15 + 1);
             arr[i] = randomly_picked_number;



    }

}
于 2013-10-20T21:46:48.343 回答