C语言中,数组是一组连续的相同类型的数据集合。 所以要在数组中插入元素,需要按照以下步骤:
1、找到插入点;
2、将插入点所在元素,及之后的所有元素,都向后移动一个单位;
3、将插入点赋值为要插入的元素。
以固定位置插入,代码举例如下:
#include <stdio.h>void insert(int *a, int n, int i, int v)
//将长度为n的数组a, 下标为i的位置插入值为v的元素。 插入后,数组长度为n+1.
{
int j
for(j = n-1 j>=i j --)//将i及以后的后移一位。 由于是固定位置插入,所以不需要查找插入位置。
a[j+1] = a[j]
a[i] = v//插入元素。
}
int main()
{
int a[5] = {1,3,6,7}/五个元素数组,初始化四个值。
int i
insert(a, 4, 2, 5)//将5插入到a[2]位置。
for(i = 0 i < 5 i ++)
printf("%d ", a[i])//输出结果,为1 3 5 6 7
return 0
}
C语言的数组有动态数组和静态数组两种。
1 静态数组。
对于静态数组,无法新增加数组成员数量。
所以一定要最初始定义足够大的数组,然后可以用一个整型变量维护数组中现有成员个数,再动态增加实际成员个数。
比如
int a[1000]int n = 0
while(scanf("%d",&a[n]) != EOF) n ++
这样的代码就可以实现增加数组成员数的类似效果。n为实际成员个数。
2 动态数组。
动态数组是可以随时改变数组成员个数的。不过为了确定当前数组个数,需要用两个整型变量来保存最大成员数,和已有成员数,这样就可以在不够的时候进行扩大。
int n = 0, size = 100 //n为当前元素个数,size为数组大小,初始为100.int *a = NULL//数组指针。
a = (int *)malloc(sizeof(int) * size) // 初始分配100个元素。
while(scanf("%d",&a[n]) != EOF)
{
n++
if(n >= size)//空间不足。
{
size+=100//增加100个元素空间。
a = (int *)realloc(sizeof(int)*size, a)//重新分配空间。
}
}
1、方法解释:数组的容量一经定义就固定的,不能动态的添加元素,要想添加就要重新定义个更大容量的数组,再把原数组复制过去。
2、具体方法:
#include <iostream>
#include <vector>
#include <string>
using namespace std
int main
vector<string>vecStr;
vecStr.push_back("x1")。
扩展资料:
程序结构
C语言的模块化程序结构用函数来实现,即将复杂的C程序分为若干模块,每个模块都编写成一个C函数,然后通过主函数调用函数及函数调用函数来实现一大型问题的C程序编写,因此常说:C程序=主函数+子函数。
因此,对函数的定义、调用、值的返回等中要尤其注重理解和应用,并通过上机调试加以巩固。
判断语句(选择结构):
if 语句:“如果”语句;if—else 语句:“若?(则)?否则?”语句;switch 语句:“切换”语句;switch—case:“切换—情况”语句。
循环语句(循环结构):
while 语句:“当?”语句;do—while 语句:“做?当?(时候)”语句;for 语句:条件语句(即“(做)?为了?”语句)。
跳转语句(循环结构:是否循环):
goto 语句:“转舵”语句,也称“跳转”语句;break 语句:“中断”(循环)语句,即结束整个循环;continue 语句:“继续”语句(结束本次循环,继续下一次循环);return 语句:“返回”语句。
参考资料来源:百度百科--数组元素
参考资料来源:百度百科--c语言
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)