c语言程序数组的输入
在C语言中,输入数组可以通过以下几种方法实现:
首先声明一个数组变量并指定数组的大小。
使用`for`循环或`while`循环遍历数组,依次使用`scanf()`函数接收用户输入的数值,并存储到数组的对应位置上。
```c #include int main() { int arr; for (int i = 0; i < 10; i++) { printf(\"Enter element %d: \", i + 1); scanf(\"%d\", &arr[i]); } printf(\"Inputted array: \"); for (int i = 0; i < 10; i++) { printf(\"%d \", arr[i]); } return 0; } ```
2. 使用`getch()`和`putchar()`函数 :
这种方法提供了更细粒度的控制,但需要处理回车符。
```c #include #include int main() { int arr; printf(\"Enter 10 integers: \"); for (int i = 0; i < 10; i++) { arr[i] = getch(); putchar(\'\\n\'); } printf(\"Inputted array: \"); for (int i = 0; i < 10; i++) { printf(\"%d \", arr[i]); } return 0; } ```
3. 使用动态内存分配来创建数组 :
可以通过`malloc()`或`calloc()`函数动态分配内存来创建数组,然后使用循环和`scanf()`函数输入数组元素。
```c #include #include int main() { int n; printf(\"Enter the size of the array: \"); scanf(\"%d\", &n); int *arr = (int *)malloc(n * sizeof(int)); if (arr == NULL) { printf(\"Memory allocation failed\\n\"); return 1; } printf(\"Enter %d integers: \", n); for (int i = 0; i < n; i++) { scanf(\"%d\", &arr[i]); } printf(\"Inputted array: \"); for (int i = 0; i < n; i++) { printf(\"%d \", arr[i]); } free(arr); return 0; } ```
4. 通过命令行参数或文件输入数组 :
可以通过命令行参数传递数组的大小和元素,或者从文件中读取数组元素。
```c #include int main(int argc, char *argv[]) { if (argc != 2) { printf(\"Usage: %s \\n\", argv); return 1; } int n = atoi(argv); int arr[n]; printf(\"Enter %d integers: \", n); for (int i = 0; i < n; i++) { scanf(\"%d\", &arr[i]); } printf(\"Inputted array: \"); for (int i = 0; i < n; i++) { printf(\"%d \", arr[i]); } return 0; } ```
建议
选择合适的方法 :根据实际需求选择最合适的方法来实现数组输入。如果数组元素较少,使用`scanf()`函数逐个输入比较简单快捷;如果需要更细粒度的控制,可以考虑使用`getch()`和`putchar()`函数。
注意数组越界 :在输入数组时,要确保输入的元素数量不超过数组的容量,否则会导致数组越界或内存溢出的问题。
动态内存分配 :如果数组大小不固定,建议使用动态内存分配来创建数组,并在使用完后释放内存。
其他小伙伴的相似问题:
如何在C语言中输入2维数组?
C语言中如何定义一个100的数组?
如何在C语言中输入10个整数并存入数组?