C 语言学习记录-代码篇-8

数组增删元素

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <stdio.h>
#include <stdlib.h>
int main()
{
//删除数组中的一个数字
/*
数组删除逻辑
查找要删除的数字下标
从该数开始后面一个数字覆盖前面的数字
数组总长度减一
*/

//1、逐步分析定义所需变量
double power[] = {5417, 3254, 7854, 6589 ,3214}; //所需数组
int count = 5; //数组元素个数
double powerDel; //要删除的数字
int i; //循环所需循环变量
int temp; //用来记录下标值
double store; //用来辅助覆盖
double powerInster;

//2、输入要删除的数字
printf("请输入要删除的数字:");
scanf("%lf", &powerDel);

//3、判断输入数字是否存在于数组中,若存在记录下标并退出循环,若不存在提示输入错误。
for(i = 0; i < count; i++)
{
if(powerDel == power[i])
{
temp = i;
break;
}
if(i == count - 1)
{
printf("您输入的数字不存在!\n");
exit(0);
}
}

//4、从要删除的数开始后面的数字逐一覆盖前面的数字
for(i = temp ; i < count; i++ )
{
power[i] = power[i + 1];
}

count--; //数组总数减一

//5、输出
printf("删除之后的数组为:\n");
for(i = 0; i < count; i++ )
{
printf("%.0lf\t", power[i]);
}

//向数组中插入一个数值
printf("\n");
printf("********************************\n");

//1、输入要插入的数值
printf("请输入要插入的数值:");
scanf("%lf", &powerInster);

//将要插入的数值作为最后一项插入到数组中
power[count] = powerInster;

count++; //数组总数加一

//输出
printf("插入后数组为:");

for(i = 0; i < count; i++)
{
printf("%.0lf\t", power[i]);
}

return 0;
}