从C中的另一个函数打印数组

时间:2013-10-20 21:39:33

标签: c function

我在理解如何做这类事情时遇到了一些问题。我已经创建了一个函数来完成逻辑部分,就像声明一个得到数组[i]的值的Integer一样,这个数字是从数组中随机选取的(我认为)。无论如何这里是我所做的代码:

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并且它在函数原型参数上)使用另一个函数?该函数将char output[]作为一个参数, 类型为int的数组,大小为int。 看起来像output_result(char output[], int arr[], int size)

问题是我不明白我应该如何调用前一个函数中的东西然后将它显示给用户。我承认这是一项任务,但我尝试了很多东西,没有任何作用。问题是我必须使用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; 
}

2 个答案:

答案 0 :(得分:4)

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

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

在你的main函数中,要找到数组大小,你可以使用它:

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函数的格式说明符(请参阅documentation)。 \nnewline个字符。

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

答案 1 :(得分: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;



    }

}