《程序设计基础实训指导教程-c语言》
ISBN 978-7-03-032846-5
p92
5.1.2 上级实训内容

【实训内容5】用指针实现删除数组中小于10的数据

正确程序已更新

  • 正确程序
题目要求:删除数组元素后,后面的元素向前覆盖,空出来的元素赋 0
/*
此程序无法判断数组元素为0的情况,结果会出错
*/
#include<stdio.h>
#define MAX 6
int main(void)
{int a[MAX+1]={0};int *p,i,j,k,t=0;p=a;printf("输入%d个数\n",MAX);for(i=0;i<MAX;i++){scanf("%d",p+i);}for(k=0;k<MAX;k++){while(*(p+k)<10&&*(p+k)!=0) //防止当连着的两个数都小于10时,i自增后会跳过后一个数{for(i=0;i<MAX;i++){if(*(p+i)<10){t=*(p+i);for(j=i;j<MAX-1;j++){*(p+j)=*(p+j+1);}*(p+MAX-1)=0;}}}}for(i=0;i<MAX;i++){printf("%d ",*(p+i));}
}



【程序更新】2020/5/7

正确程序

更新:   修复程序不能判断数字0的情况BUG:  数组中存在0xfffff(1048575)时,判断会出错
#include<stdio.h>
#define MAX 5
int main(void)
{int a[MAX+1]={0};int *p,i,j;p=a;//输入数组printf("输入%d个数\n",MAX);for(i=0;i<MAX;i++){scanf("%d",p+i);}//判断小于10,将前覆盖,最后一位元素赋值为特殊值0xfffff,避免和下面if判断<10起冲突 for(i=0;i<MAX;i++){while(*(p+i)<10){for(j=i;j<MAX;j++){  *(p+j)=*(p+j+1);}*(p+MAX-1)=0xfffff;}}//按照题目要求,0xfffff替换为0 for(i=0;i<MAX;i++){while(*(p+i)==0xfffff){*(p+i)=0;}}//输出数组 for(i=0;i<MAX;i++){printf("%d ",*(p+i));}
}

用指针实现删除数组中小于10的数据相关推荐

  1. vue删除数组中的一条数据_删除排序数组中的重复项 II

    删除排序数组中的重复项 II题目 给定一个增序排列数组 nums ,你需要在 原地 删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在 原地 修改 ...

  2. C#删除数组中是节假日的数据

    有一个功能,实现一个数组中只包含工作日的数据,将休息日的数据删掉.网上有判断日期是节假日.工作日的接口,但是我的数据量比较大,限制访问次数了.在网上参考了一下博客园的例子,https://www.cn ...

  3. 微信小程序之删除数组中的某一个数据

    方法一: const index=accounts.collectId.findIndex(res=>res==carInfo.id) if (index!=-1) {accounts.coll ...

  4. c#中如何删除数组中的元素_C中的数组

    c#中如何删除数组中的元素 为什么我们需要数组? (Why do we need Arrays?) Consider the problem of storing 10 integers. The n ...

  5. C语言--使用指针实现删除字符串中的空格

    本篇主要实现了在C语言使用指针实现删除字符串中的空格,详细内容见下面代码,主要利用指针遍历所得到的字符串,使用一个指针指向字符串首地址,判断其是否为空格,如果是则定义一个临时指针,并遍历之后的所有字符 ...

  6. 如何从值中删除数组中的项目?

    有没有一种方法可以从JavaScript数组中删除项目? 给定一个数组: var ary = ['three', 'seven', 'eleven']; 我想做类似的事情: removeItem('s ...

  7. Array.splice()--删除数组中重复的数据

    splice方法 从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素. 用法 my_array.splice(start, deleteCount [, val ...

  8. 汇编语言(八)之删除数组中为零的元素

    删除数组中为零的元素 程序运行: 无输出 代码: datas segmentmem dw 10 dup(0h,34h,0h,56h,32h,10h,3h,13h,0h,0h)memCount dw ( ...

  9. 删除数组中的重复项(保留最后一次出现的重复元素并保证数组的原有顺序)

    链接 第21题: 方法一:Set判断是否重复 + list存正确的元素 逆序遍历,不重复则添加至list: 使用Collections.reverse() 将list倒置: 将list放入int[ ] ...

最新文章

  1. 防抖 节流_每日一题手写函数防抖与节流
  2. 从Zipkin到Jaeger,Uber的分布式追踪之道tchannel
  3. 面试突击32:为什么创建线程池一定要用ThreadPoolExecutor?
  4. 关于RecyclerView(二)设置EmptyView
  5. 倾斜摄影三维建模过程和项目费用
  6. (一) Windows环境下的Detours编译
  7. 运维工程师平均月工资是多少?
  8. C++ 优先队列 priority_queue 使用篇
  9. Webbygram:网页版Instagram再生
  10. java判断移动端和pc端_java判断是移动端还是pc端
  11. maximo自动发送工作流
  12. vue 跳转页面删除当前tab
  13. 背包问题(01背包和完全背包)
  14. ACM程序设计书中题目--J(大写字母的更替)
  15. 关于Java虚拟机(Java Virtual Machine 简称JVM) 笔记
  16. 埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 I 二数(模拟)
  17. [我的世界]c++实现二维我的世界
  18. WiFi Easy Connect简介
  19. 浅论激光相控阵雷达在自动驾驶汽车中的应用
  20. PHP使用POP3协议类收取邮件

热门文章

  1. MMD_2b_NearestNeighborLearning
  2. Python操作SQLite3
  3. Gartner 发布《2017 年新兴技术成熟度曲线图》
  4. ajax中的让渡,jQuery必须掌握的API
  5. mysql2012用户名_mysql2012 代码怎么用
  6. 使用webpack打包后,vscode中vue代码变白色的解决办法
  7. vue-cli · Failed to download repo vuejs-templates/webpack: tunneling socket could not be established
  8. 十三、进程互斥的软件实现方法
  9. 报错解决 :Couldn't find any package by regex 'g++-8'
  10. 鸿蒙电视哔哩哔哩,[4K视频] 65寸智能电视只要3299元?荣耀智慧屏X1开箱