#include <stdio.h>
#include <stdlib.h>
#define N 5 //宏定义,不是必须的(是个常量,不能在程序中进行加减运算)
int main()
{
/*
删除的逻辑
12 34 23 67 9
12 34 67 9 9
1、查找要删除的数字的下表 2
2、从下标开始,后面一个覆盖前面一个数字
3、数组的总长度-1
*/
int count = 5; //表示数组元素的个数
double powers[] = {42322,45771,40907,41234,40767};
double deletePower; //用户要删除的战力值
int deleteIndex = -1; //要删除元素的下标,给一个不可能的初值,方便判断。
int i; //循环变量
double insertPower; // ner insert power
printf("请输入要删除的战力值:\n");
scanf("%lf",&deletePower);
for(i = 0; i<count; i++)
{
if(deletePower == powers[i])
{
//记录下当前的下标
deleteIndex = i;
break; //找到了要删除的战力值,直接跳出循环,提升效率
}
}
//根据判断(是否找到),执行后续操作
if(-1 == deleteIndex)
{
printf("没有对应的战力值!\n");
}
else
{
//cover the former number from the index
for(i = deleteIndex; i < count -1; i++) //cover count-1 times
{
powers[i] = powers[i +1];
}
count--;
}
printf("Final result :\n");
for(i = 0 ; i < count; i++)
{
printf("%.2lf\t",powers[i]); //save 2 nums after dot
}
// insert a new num after delet
printf("\n Please insert your new power num:\n");
scanf("%lf",&insertPower);
powers[count] = insertPower;
// afer insert. length+1
count++;
for(i = 0 ; i < count; i++)
{
printf("%.2lf\t",powers[i]); //save 2 nums after dot
}
}
C语言,数组元素的增删
猜你喜欢
转载自blog.csdn.net/cxd15194119481/article/details/84715091
今日推荐
周排行