如何实现让用户输入数组元素并在数组末尾插入新元素?
如何实现让用户输入数组元素并在末尾插入新元素?
我来给你完整实现这个功能,顺便拆解下核心思路——本质就是先让用户构建初始数组,然后通过动态更新数组长度,把新元素放到当前最后一个元素的下一位,还可以加个循环让用户能多次插入,直到不想继续为止。
完整实现代码
#include<stdio.h> int main() { int i, n, insrt; char option; // 定义足够大的数组,避免插入时溢出(这里最多存100个元素) int array[100]; printf("请输入初始数组的元素个数:\n"); scanf(" %d", &n); // 让用户输入初始数组元素 for(i = 0; i < n; i++) { printf("请输入第%d个元素:\t", i+1); scanf(" %d", &array[i]); } // 展示初始数组 printf("\n你当前的数组内容是:\n"); for(i = 0; i < n; i++) { printf(" %d ==>", array[i]); } printf(" NULL\n"); // 循环实现多次末尾插入 do { // 检查数组是否已满 if(n >= 100) { printf("\n数组已经存满啦,不能再插入新元素了!\n"); break; } printf("\n请输入要插入到末尾的元素:\t"); scanf(" %d", &insrt); // 把新元素放到当前数组的最后一位 array[n] = insrt; // 数组长度加1 n++; // 展示更新后的数组 printf("\n更新后的数组内容是:\n"); for(i = 0; i < n; i++) { printf(" %d ==>", array[i]); } printf(" NULL\n"); // 询问用户是否继续插入 printf("\n是否要继续插入元素?(y/n):"); scanf(" %c", &option); } while(option == 'y' || option == 'Y'); printf("\n操作结束!"); return 0; }
关键步骤解析
- 数组容量预留:定义
int array[100]是为了给后续插入留足够空间,如果你需要更大的容量,可以修改这个数字,但要注意避免内存浪费或溢出。 - 初始数组构建:通过
for循环让用户逐个输入初始元素,同时记录数组长度n。 - 末尾插入逻辑:每次插入时,直接把新元素赋值给
array[n](因为数组下标从0开始,当前最后一个元素的下标是n-1,所以下一位就是n),然后把n加1,更新数组的实际长度。 - 循环插入控制:用
do-while循环实现多次插入,用户可以选择继续或结束,同时加了数组满的判断,防止越界访问。
内容的提问来源于stack exchange,提问作者Austin
相关产品推荐
相关产品推荐

