C语言数组增加、删除实战-创新互联
需求:
根据要求操作排行榜战力值
名称栏目:C语言数组增加、删除实战-创新互联
文章源于:http://scyanting.com/article/dpjcpj.html
- 删除战斗力42322
- 插入战斗力41000并保持降序
删除逻辑
站在用户的角度思考问题,与客户深入沟通,找到南溪网站设计与南溪网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站制作、网站建设、企业官网、英文网站、手机端网站、网站推广、国际域名空间、雅安服务器托管、企业邮箱。业务覆盖南溪地区。42322 45771 40907 41234 40767
42322 45771 41234 40767
0 1 2 3 4
- 查找要删除数字的下标,比如2
- 从下标开始,后面一个覆盖前面一个数字
- 删除一个元素过后,数组总长度-1。不减总长度,后面那个数会重复
#include#include//查找要删除数字的下标,42322
//从下标开始,后面一个覆盖前面一个数字
//删除一个元素过后,数组总长度-1。不减总长度,后面那个数会重复
//插入41000
int main()
{
double nums[] = {42322,45771,40907,41234,40767};
int count = 5; //数组长度,定义这个方便后面使用
double del; //输入要删除的数字
int del_index = -1; //要删除数字的下标初值,要不存在的
int insert_index; //需要插入位置的下标
double insert_num; //需要插入的数字
printf("请输入需要删除的数字:");
scanf("%lf",&del);
for(int i = 0;i< count;i++) //第一个for循环查找下标
{
if(del == nums[i])
{
del_index = i;
break; //找到了要删除的下标,直接跳出循环
}
}
// 判断如果下标恒等于-1,就是没有找到
if(del_index == -1)
{
printf("很遗憾,没有找到需要删除的值\n");
}
else
{
// 从找到的下标开始覆盖,后面的覆盖给前面的
// 循环条件,小于最后一个值的角标位置结束循环
for(int i = del_index;i< count- 1;i++)
{
nums[i] = nums[i + 1];
}
// 删除成功,这个时候数组总长度-1
count-=1;
}
// 删除结束,使用循环打印结果
for(int i = 0;i< count;i++)
{
printf("%.1lf\t",nums[i]);
}
// 按输入的目标位置插入数字
printf("\n请输入需要插入的下标:");
scanf("%d",&insert_index);
printf("请输入需要插入的数字:");
scanf("%lf",&insert_num);
//从后向前遍历,将元素整体向后移动一位,空出来目标位置
for(int i = count;i >= insert_index;i--)
{
nums[i] = nums[i -1];
}
// 目标位置空出来了,插入我们的目标数字
nums[insert_index] = insert_num;
// 插入成功,数组长度加1
count+=1;
// 插入结束,使用循环打印结果
for(int i = 0;i< count;i++)
{
printf("%.1lf\t",nums[i]);
}
return 0;
}
#include#includeint main()
{
double array[] ={1.1, 2.2, 3.3,4.4,5.5,6.6,7.7,8.8};
// 计算数组长度,类似于 总价/单价=数量
int len = sizeof(array) / sizeof(array[0]);
// 删除下标
int index = -1;
// 插入数字
double insert_num;
// 插入位置
int insert_index;
printf("原始数组内容为:\n");
for(int i = 0; i< len; i++){
printf("%.1lf\t", array[i]);
}
printf("\n请输入删除的下标(0-%d):", len-1);
scanf("%d", &index);
// 下标范围判断是否合法
if(index >len-1 || index< 0){
printf("您输入的下标不合法!");
exit(0);
} else {
for(int i = index; i< len;i++){
array[i] = array[i+1];
}
}
// 数组长度减1
len--;
// 打印删除过后的结果
printf("删除过后的结果:\n");
for(int i = 0; i< len; i++){
printf("%.1lf\t", array[i]);
}
// 指定位置插入数据
printf("\n请输入插入的下标(0-%d):", len-1);
scanf("%d", &insert_index);
printf("请输入插入的数字:");
scanf("%lf", &insert_num);
// 从后向前遍历,将元素整体向后移动一位,空出来目标位置
for(int i = len - 1;i >= insert_index;i--){
array[i + 1] = array[i];
}
array[insert_index] = insert_num;
// 放入目标元素,数组长度加1
len++;
printf("插入过后的结果:\n");
for(int i = 0; i< len; i++){
printf("%.1lf\t", array[i]);
}
printf("\n");
return0;
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
名称栏目:C语言数组增加、删除实战-创新互联
文章源于:http://scyanting.com/article/dpjcpj.html