已知数据文件IN27.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsVal(),其功能是:把千位数字和十位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数cd(新十位数的十位数字是原4位数的个位数字,新十位数的个位数字是原4位数的百位数字),如果新组成的两个十位数ab>cd,ab必须是偶数且能被5整除,cd必须是奇数,同时两个新数均不为0,则将满足此条件的4位数按从大到小的顺序存入数组b中,并要计算满足上述条件的4位数的个数cnt,最后,调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT27.DAT文件中。

#include  <stdio.h>
#define  MAX  200
int a[MAX],b[MAX],cnt=0;
void jsVal()
{int i,j,qian,bai,shi,ge,temp,kk;for(i=0;i<200;i++)//查找满足的数据{qian=a[i]/1000;bai=(a[i]/100)%10;shi=(a[i]/10)%10;ge =a[i]%10;if(((10*qian+shi)>(10*ge+bai))&&(bai%2==1))if((shi==0)&&((10*qian+shi + 10*ge+bai)!=0)){b[cnt++]=a[i];}}for(j=1;j<cnt;j++)//排序{kk=j;while((b[j]>b[j-1])&&(j!=0)){temp=b[j];b[j]=b[j-1];b[j-1]=temp;j--;}j=kk;}
}
void readDat()
{int i;FILE *fp;fp=fopen("IN27.DAT","r");for(i=0;i<MAX;i++) fscanf(fp,"%d",&a[i]);fclose(fp);
}
main()
{int i;readDat();jsVal();printf("满足条件的数=%d\n",cnt);for(i=0;i<cnt;i++) printf("%d\n",b[i]);printf("\n");writeDat();
}
writeDat()
{FILE *fp;int i;fp=fopen("OUT27.DAT","w");fprintf(fp,"%d\n",cnt);for(i=0;i<cnt;i++) fprintf(fp, "%d\n",b[i]);fclose(fp);
}

一个关于数组中满足条件的元素选择、及再次排序得c语言函数。相关推荐

  1. 一个关于数组中满足条件的元素选择、及函数变换得c语言函数

    函数ReadDat()的功能是实现从文件ENG65.IN中读取一篇英文文章,存入到字符串数组xx中:请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx ...

  2. js查找数组中符合条件的元素

    js查找数组中符合条件元素的几种方法 一.利用for循环进行查找 let arr = [{name: 'zhangsan', age: 18},{name: 'lisi', age: 17},{nam ...

  3. 如何判断一个整数数组中是否有重复元素?要求时间复杂度O(n),空间复杂度O(1)

    题目: 写一个函数判断一个int类型的数组是否是有效的.  所谓有效是指:假设数组大小为n,那么这个int数组里的值为0~n-1之间的数,并且每个数只能出现一次,否则就是无效数组.  例如[5,3,1 ...

  4. 如何判断一个整数数组中是否有重复元素?要求时间复杂度O(n),空间复杂度O(1)...

    题目: 写一个函数判断一个int类型的数组是否是有效的.  所谓有效是指:假设数组大小为n,那么这个int数组里的值为0~n-1之间的数,并且每个数只能出现一次,否则就是无效数组.  例如[5,3,1 ...

  5. java中map删除指定元素_Map中根据条件删除元素

    今天在写程序过程中,需要根据判断条件删除一个Map中的相应数据,我自然而然想到可以通过调用Map中的remove(Object key)函数进行删除:代码如下: public Map processM ...

  6. 输出数组中满足条件元素的坐标

    目录 1.输出数组中满足条件元素的坐标例子 2.进一步挑选:删除重复数 输出数组中满足条件元素的坐标 :(第一维坐标array,第二维坐标array) 1.输出数组中满足条件元素的坐标例子 limva ...

  7. 有一个数组,内放10个整数,要求找出最小的数和它的下标,然后把它和数组中最前面的元素对换。

    ***知识点:数组与循环的灵活运用. 是不是第一次看到题就会产生疑惑,什么是下标?怎么找到数组中最小的值?而且还要和最前面的元素互换! 别着急,我们一步一步来分析: 数组的下标,比如在给定一个arra ...

  8. Java黑皮书课后题第7章:7.10(找出最小元素的下标)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素下标。编写测试程序,提示用户输入10个数字,调用这个方法返回最小值的下标(多个则最小

    7.10(找出最小元素的下标)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素下标.编写测试程序,提示用户输入10个数字,调用这个方法返回最小值的下标(多个则返回最小的下标) 题目 题目描述 ...

  9. Java黑皮书课后题第7章:7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素。编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值

    7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素.编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值 题目 题目描述与运行示例 破题 代码 ...

最新文章

  1. hdu 2013 蟠桃记-递推-[解题报告]C++
  2. SchemaSpy:数据库构架文档生产器,以及该软件的部分缺陷修改。提供工具包下载...
  3. SQL*Plus命令
  4. leetcode 198 python
  5. cv2读取np的矩阵图片,numpy数组clip和astype,查看数据类型array.dtype
  6. js数组去重的4个方法
  7. android小程序:计算圆面积
  8. python书籍_年度最多安利的10本Python书籍
  9. MEF 编程指南(二):定义可组合部件和契约
  10. 一网打尽Mac上的高效工具 - 系统工具篇(附演示视频)
  11. Vue + JsBarcode 批量打印标签
  12. java vcard格式_关于vcard 文件数据格式,以备不时之需
  13. 把经纬度转换成十进制
  14. 踽踽独行,你好像这世界上最孤独的灵魂
  15. window 下载安装minio
  16. JQuery 基础知识学习(详尽版)
  17. 如何创建内容安全策略(CSP 标头)
  18. 人工智能神经网络算法,人工智能神经网络技术
  19. 双十一马上到来了,程序员都在干什么呢?程序员:我太难了…
  20. 超级强大的五个资源网站 想要的资源都有

热门文章

  1. 组件:参数验证、组件:事件传递
  2. Oracle中ROWNUM伪列和ROWID伪列的用法与区别
  3. Struts2之文件上传
  4. 任务调度之Timer、TimerTask
  5. JavaScript(四)——具体对象(Math、字符串对象、Date对象、Number对象及Boolean对象)
  6. 调试技术: Linux core dump file
  7. JDK8的JVM优化实操及部分原理加深理解
  8. 编转码、CDN和AI是如何撑起短视频数百亿市场规模的
  9. ResultSetMetaData和ResultSet
  10. XML文件的读取(XmlParserDemo)