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
}
main() {int a[10],b[10],i,j=0,k=0,e=0 for(i=0i<10i++) scanf("%d",&a[i]) printf("\n") for(i=0i<10i++) scanf("%d",&b[i]) printf("\n") for(i=0i<10i++) {if(a[i]>b[i]) j++ else if(a[i]b %d times\na#includeint main(){int numbers[10] = { 10,2,3,4,5,6,9,8,7,1 }int a,b, text, hello for(a=0a<10-1a=a+1) { //在这里进行比较的开始的代码hello = 1 //假如剩下的元素已经被排序好了,然后接着进行下面的比较for(b=0b<10-1-ib=b+1){if(numbers[b] >numbers[b+1]){text= numbers[b]numbers[b] = numbers[b+1]numbers[b+1] = texthello= 0}}if(hello) break }for(a=0a<10a=a+1){printf("%d ", numbers[a])}printf("\n")return 0}扩展资料:C语言中数组元素大小的相关排序规则:一、首先需要对数组中的元素进行排列,默认是以字符串的规则进行从小到大排序;可接收一个参数:自定义的规则相关排序。参数的具体要求如下:1、参数首先必须是一个函数;2、函数必须有一个明确的返回值;3、返回值必须是number类型,但不可以是NaN。二、排序中的具体规则:1、首先每次从数组中挑选出两个元素传入函数中,进行比较,直到所有进行排列的元素都被挑选完毕以后就不要再进行挑选;2、如果返回值是一个正数,就交换这彼此的位置,实现大小的正确排列;3、如果返回值是一个负数或0,此时说明大小位置的顺序是正确的,此时就不需要交换彼此的位置。4、默认同一字符的全角字符看做半角字符。不区分同一个字符(如日文的片假字)的半角与全角状态。相同元素,维持原序,默认区分字母大小写,同一个字符小写在前,大写在后。注意:对数组的元素进行排序需要不断比较两个数字的大小,10个元素排序一共需要比较9次,直到所有的元素被都完完全全地被比较一次。#include<stdio.h>
#include
<stdlib.h>
void
main()
{
int
b[7]
int
i,
j,
dup
randomize()
/*
这一段代码可保证数组
b
内的
7
个随机数都不一样
*/
for
(i
=
0
i
<
7
++i)
{
do
{
b[i]
=
rand()
%
36
/*
产生随机数
*/
dup
=
0
/*
先假设没有重复
*/
for
(j
=
0
j
<
i
&&
!dup
++j)
/*
跟已经产生的数字一一比较
*/
{
if
(b[i]
==
b[j])
/*
如果重复了
*/
dup
=
1
/*
就记住是重复了
*/
}
}
while
(dup)
}
/*
这一段只是把结果打出以作验证
*/
for
(i
=
0
i
<
7
++i)
printf("%d
",
b[i])
printf("\n")
}
如果有看不懂的地方,请继续追问,一定会解释清楚。