【问题标题】:To merge n number of arrays into one using functions and pointers in C使用 C 中的函数和指针将 n 个数组合并为一个
【发布时间】:2017-12-16 19:54:51
【问题描述】:

我曾尝试用函数和数组来做这件事,但为了用指针做它失败了。 我想在指针而不是数组的帮助下做到这一点,但是我在使用指针传递和调用数组的值时遇到了问题。 下面是代码。

#include <stdio.h>

void final_array(int arr[], int size);
void array(int arr[], int i, int size);

int main()
{
int num, size[100];
int i, j;
int arr[100][100];

printf("Enter the number of arrays: \t");
scanf("%d", &num);
num = num < 100 ? num: 100;

//feeding elements.

for (i = 0; i<num; i++)
{
    printf("\nEnter the size of the array: \t");
    scanf("%d", &size[i]);

    printf("\nEnter the array: ");

    size[i] = size[i] < 100 ? size[i] : 100;
    array(&arr[i][0], i, size[i]);
}

for(i=0; i<num; i++)
{
    final_array(&arr[i][0], size[i]);
    printf("\n");
}

printf("\nPress Enter key to exit.\n");
getchar();

 return 0;
}

void array(int arr[], int i, int size)
{
    int j;
for (j = 0; j<size; j++)
{
    printf("\nEnter arr[%d][%d]: \t",i, j);
    scanf("%d", &arr[j]);
}
}

void final_array(int arr[], int size)
{
    int j;
    for(j=0; j<size; j++)
    {
        printf("%d\t", arr[j]);
    }
}

【问题讨论】:

  • 我试过用函数和数组来做这件事,但没有用指针来做。 - 让我很困惑
  • 我不明白你想要达到什么目的?
  • 可能他想在程序中添加几个数组并将它们的值写入一个数组
  • 请提供更多解释和细节。为清晰起见重新措辞也可能会有所帮助。请添加要处理的数据示例并显示某种所需的结果。就目前而言,这个问题还不清楚,即使现有的答案也是以“我猜...”开头的。

标签: c arrays pointers multidimensional-array


【解决方案1】:

我想这应该可以解决你的问题。让我知道它是否正确。

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

void final_array(int *arr, int size);
void array(int *arr, int i, int size);

int main()
{
int num;

int i, j;
int **arr=(int **)malloc(100 * sizeof(int *));
for (i=0; i<100; i++)
        arr[i] = (int *)malloc(100 * sizeof(int));

printf("Enter the number of arrays: \t");
scanf("%d", &num);
int *size=malloc(sizeof(int)*num);
num = num < 100 ? num: 100;

//feeding elements.

for (i = 0; i<num; i++)
{
    printf("\nEnter the size of the array: \t");
    scanf("%d", &size[i]);

    printf("\nEnter the array: ");

    size[i] = size[i] < 100 ? size[i] : 100;
    array(&arr[i][0], i, size[i]);
}

for(i=0; i<num; i++)
{
    final_array(&arr[i][0], size[i]);
    printf("\n");
}

printf("\nPress Enter key to exit.\n");
getchar();

 return 0;
}

void array(int *arr, int i, int size)
{
    int j;
    for (j = 0; j<size; j++)
    {
        printf("\nEnter arr[%d][%d]: \t",i, j);
        scanf("%d", &arr[j]);

    }
}

void final_array(int *arr, int size)
{
    int j;
    for(j=0; j<size; j++)
    {
        printf("%d\t", arr[j]);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-11
    • 1970-01-01
    • 2021-04-30
    相关资源
    最近更新 更多