在C中创建一个从1到n的连续数字数组?

标签 c arrays

我正在尝试编写一个函数,该函数将生成一个从 1n 的连续数字数组。例如,我希望 array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}。我的代码似乎没有运行,但我不完全知道为什么。

int count (int a)
{
   scanf("%d", &a);
   int i;
   int array[a];
   do
   {
      i = 0;
      a = a - i;
      array[a - 1] = a;
      i++;
   }
   while (a > 0);
   printf("Resulting array is %d", array[a]);
   return 0;
}

最佳答案

一种惯用的 C 方法是定义一个填充现有数组的函数:

void count(int *array, int max)
{
    for (int i = 0; i < max; ++i)
    {
        array[i] = i+1;
    }
}

你可以调用它,例如像这样:

int arr[10];
count(arr, 10);
for (int i = 0; i < 10; ++i)
{
    printf("%d ", arr[i]);
}

关于在C中创建一个从1到n的连续数字数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45591891/

相关文章:

java - 递增二维 java 数组的问题

c - 为什么 Android 2.6.29 中的 syscalls.h 文件中不存在 sys_mmap?

c - 为什么我会收到段错误 11(使用 fget 读取输入并存储在数组中)?

c++ - 将宏名称传递给 X-Macro 列表是否合法

javascript - 无法打印出数组

python - 了解 numpy 数组中 any() 和 all() 的使用

c - 我如何使用此客户端程序访问 tomcat 资源?

c - MPI_Gather() 将中心元素放入全局矩阵中

c - 维度大于 3 的数组地址

c++ - 逗号分隔标记到 const char 的 vector **