【发布时间】:2021-05-12 08:09:37
【问题描述】:
我不知道如何将我的函数中的数组元素打印到主程序中,所以如果有人可以检查此代码并帮助我修复它,我将不胜感激。该程序应该从用户输入中获取数组的长度,然后询问其元素并在之后将它们打印出来。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int arrayN(int N) {
printf("Input array lenght: ");
scanf("%d",&N);
if(N>2) {
return N;
} else {
return 0;
}
}
int arrayelements(int array[], int array_length) {
int loop, i, N;
array_length = arrayN(N);
printf("Enter elements of the array: \n");
for(int i = 0; i < array_length; ++i) {
scanf("%d", &array[i]);
}
for(loop = 0; loop < array_length; loop++) {
printf("%d ", array[loop]);
}
}
int main() {
int N, array[], array_length;
int b = arrayelements(array[], array_length);
int a = arrayN(N);
printf("Array length is: %d \n", a);
printf("Elements of array are: %d \n", b);
return 0;
}
【问题讨论】:
-
一个数组在定义后永远不会改变它的大小;它无法在第 42 行容纳 10 个元素......并且在第 52 行无法容纳 1000 个元素。此外,
int array[];未指定大小且无效。 -
您应该在 C 教科书中阅读有关使用
malloc进行动态内存分配的内容。 -
我相信您的代码无法编译,原因是:
int b = arrayelements( ->array[]<-, array_length);。请修复您的代码,直到它完成,然后再次发布。