问题描述-明明的随机数】明明想在学校中请一些同学一起做问卷调查,为了实验的客观性,他先用计算机生成了N 个1 到1000 之间的随机整数,(N≤100),对于其中重复的数字,只保留一个,把其余相

同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好

的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。

【输入文件】

输入文件random.in 有2 行,第1 行为1 个正整数,表示所生成的随机数的个数:N

第二行有N 个用空格隔开的正整数,为所产生的随机数。

【输出文件】

输出文件random.out 也是2 行,第1 行为1 个正整数M,表示不相同的随机数的个数。

第2 行为M 个用空格隔开的正整数,为从小到大排好序的不相同的随机数。

【输入样例】

10

20 40 32 67 40 20 89 300 400 15

【输出样例】

8

15 20 32 40 67 89 300 400

/*本题主要是考察对排序算法的掌握,只不过外加了一个去重的操作。本题的算法有很多,我们在考试时,时间紧,题目难度大。如果我们能用最简单的思维方式解决问题的话,就不一定把很多的时间放在代码执行效率的优化问题上。有时候牺牲一点空间(内存)和时间对于获取更多的考试时间是非常有必要的。本题最简单的思想方法,就是根据题目要求,先对给定的一组数据进行排序,排序的方法可以使用最简单的冒泡算法来完成。由于本题的输出结果要求我们必须先统计出不重复数据的个数,所以当数据排序之后,我们可以先对所有的数据遍历一次,这一次遍历的目的就是让我们统计出不重复数据的个数,并将其输出。最后,我们还需进行一次遍历,这次遍历用于打印出排序之后不重复的所有数据结果.

*/

#include

int main()

{

FILE *fp1,*fp2;

int N,M=0;

int i,j;

int a;

int num[100]; //根据题目所给的数据规模定义数组的大小    if((fp1=fopen(“random.in”,”r”))==NULL)

{

printf(“cannot open file\n”);

return 0;

}

fscanf(fp1,”%d”,&N); //输入随机数的个数

for(i=0;i

fscanf(fp1,”%d”,&num[i]); //将已知的随机数存放到初始数组中

for(i=0;i

for(j=i+1;j

{

if(num[i]>num[j])

{

a=num[i];

num[i]=num[j];

num[j]=a;

}

}

fp2=fopen(“random.out”,”w”); //打开写文件的指针

for(i=0;i

{

if(i>0&&num[i]==num[i-1]) //思考一下这个去重的操作中为什么有i>0这个条件          continue;

M++;

}

fprintf(fp2,”%d\n”,M); //在结果文件中打印出不重复数据的个数 并键入一个回车符

for(i=0;i

if(i>0&&num[i]==num[i-1]) //思考一下这个去重的操作中为什么有i>0这个条件

continue;

fprintf(fp2,”%d “,num[i]);

}

fclose(fp1);

fclose(fp2);

return 0;

}

http://www.gzkg.net/show.aspx?id=117&cid=356

明明的随机数冒泡排序c 语言,NOIP复赛 c++-明明的随机数(算法和原码参考)相关推荐

  1. C语言学习5:机器数、真值、原码、反码和补码详解

    目录 1.前言 2.机器数 3.真值 4.原码 5.反码 6.补码 1.前言 上篇博文中,笔者介绍了计算机存储器存储容量大小的常用单位 .在未来,我们还会接触到各种各样的数据类型,并且这些数据在运算的 ...

  2. C语言noip复赛知识点,NOIP复赛知识点简述及复赛算法总结!

    全国青少年信息学奥林匹克联赛(National Olympiad in Informatics in Provinces,简称NOIP) 转眼已到了下半年,马上将迎来一场重要的比赛--NOIP. 考前 ...

  3. C语言 猜随机数大小,C语言 猜数游戏--产生一个随机数

    #include #include #include int main(int argc, const char * argv[]) { // insert code here... printf(& ...

  4. 随机数分布c语言,C++ piecewise_linear_distribution分段线性分布随机数用法详解

    piecewise_linear_distribution 模板定义了浮点值的连续分布,它的概率密度函数是从一系列的样本值所定义的点得到的.每个样本值的权重都决定了它的概率密度值.图 1 展示了一个示 ...

  5. C语言打印链表的中间节点的算法(附完整源码)

    C语言打印链表的中间节点的算法 C语言打印链表的中间节点的算法完整源码(定义,实现,main函数测试) C语言打印链表的中间节点的算法完整源码(定义,实现,main函数测试) #include < ...

  6. C语言链表返回具有的回文序列的算法(附完整源码)

    C语言链表返回具有的回文序列的算法 C语言链表返回具有的回文序列的算法完整源码(定义,实现,main函数测试) C语言链表返回具有的回文序列的算法完整源码(定义,实现,main函数测试) #inclu ...

  7. C语言链表是否为循环表的算法(附完整源码)

    C语言链表是否为循环表的算法 C语言链表是否为循环表的算法完整源码(定义,实现,main函数测试) C语言链表是否为循环表的算法完整源码(定义,实现,main函数测试) #include <io ...

  8. C语言矩阵M*N节省空间的算法(附完整源码)

    C语言矩阵M*N节省空间的算法 C语言矩阵M*N节省空间的算法完整源码(定义,实现,main函数测试) C语言矩阵M*N节省空间的算法完整源码(定义,实现,main函数测试) #include < ...

  9. C语言字符串是否为pallindrome排列的算法(附完整源码)

    C语言字符串是否为pallindrome排列的算法 C语言字符串是否为pallindrome排列的算法完整源码(定义,实现,main函数测试) C语言字符串是否为pallindrome排列的算法完整源 ...

最新文章

  1. 1-runtime的Method,IMP,Property,ivar
  2. 如何设计一门语言(九)——类型
  3. Java制作VCARD
  4. Mybatis(10)properties标签的使用及细节,typeAliases和package标签
  5. java+switch语句+枚举,Java枚举类型在switch语句中的正确用法
  6. 证件照尺寸修改、图片背景换色、照片大小压缩…几个在线图片编辑、处理网站推荐
  7. 基于Python实现网页版之复杂图片去水印
  8. 海洋大数据应用关键技术及应用前景
  9. 计算机金钱符号怎么打,电脑键盘上怎么打钱的符号
  10. 聊天软件黑盒测试,duckchat
  11. android 听筒播放音乐
  12. 榆熙教育:拼多多有效提高店铺出评率的技巧
  13. simulink中S函数格式
  14. tcpdump,tshark常用命令(一)
  15. special effects - 蜘蛛网背景特效
  16. 毕设完成过程及遇到的问题
  17. 探索未来,未解之谜,阅读类 app
  18. 关于等保2.0要求配置的身份鉴别(口令长度、复杂度、有效期)(口令登录失败、锁定多长时间)
  19. 南非世界杯对阵及电视直播表
  20. 牛客网-运维工程师能力评估(部分选题)

热门文章

  1. 【hdu4010】 Query on The Trees
  2. [转]vmware 域网络搭建
  3. sharepoint 添加解决方案 遇到的问题
  4. 7个习惯可以改变一个人和他的一生
  5. java怎么快速创建监听类_如何创建监听器
  6. 某厂面试:如何优雅使用 SPI 机制
  7. 从一线技术人员到阿里合伙人,主导了去“IOE”,没有他,阿里只能给美国公司打工!...
  8. 花了20分钟,给女朋友们写了一个web版群聊程序
  9. 2019年容器突然火了,到底什么是容器?!
  10. Javascript调试之console对象,它的一些小技巧你都知道吗?