c语言 对数组 Data[] 设计函数,实现指定数目元素个数(可由用户指定元素个数)的输入和 不指定元素个数(整数元素的个数不确定)的输入完成数组的初始化。
时间: 2023-07-14 17:12:08 浏览: 135
C语言的数组学习入门之对数组初始化的操作
可以设计一个函数,接收一个参数 n,表示数组 Data 的元素个数。如果 n 大于 0,那么就按照用户指定的元素个数进行输入;如果 n 等于 0,那么就不断输入元素,直到用户输入非数字字符为止。具体实现如下:
```c
#include <stdio.h>
#include <stdlib.h>
void inputArray(int Data[], int n) {
if (n > 0) {
printf("请输入 %d 个整数:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &Data[i]);
}
} else {
printf("请输入整数元素,以非数字字符结束:\n");
int i = 0;
while (scanf("%d", &Data[i]) == 1) {
i++;
Data = (int*)realloc(Data, (i+1) * sizeof(int));
}
}
}
int main() {
int n;
printf("请输入数组元素个数(0 表示未知):");
scanf("%d", &n);
int *Data = (int*)malloc(n * sizeof(int));
inputArray(Data, n);
printf("数组元素为:\n");
for (int i = 0; i < n; i++) {
printf("%d ", Data[i]);
}
printf("\n");
free(Data);
return 0;
}
```
这里使用了动态内存分配,当输入不确定的情况下,每读入一个元素就动态增加数组的大小,以适应未知的元素个数。注意在程序结束时要释放动态分配的内存。
阅读全文