我已尝试使用函数和数组执行此操作,但无法使用指针执行此操作。 我想在指针而不是数组的帮助下做到这一点,但我遇到了使用指针传递和调用数组值的问题。 下面是代码。
#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]);
}
}
答案 0 :(得分:0)
我想这应该可以解决你的问题。让我知道它是否正确。
#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]);
}
}