明明的随机数冒泡排序c 语言,NOIP复赛 c++-明明的随机数(算法和原码参考)
问题描述-明明的随机数】明明想在学校中请一些同学一起做问卷调查,为了实验的客观性,他先用计算机生成了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++-明明的随机数(算法和原码参考)相关推荐
- C语言学习5:机器数、真值、原码、反码和补码详解
目录 1.前言 2.机器数 3.真值 4.原码 5.反码 6.补码 1.前言 上篇博文中,笔者介绍了计算机存储器存储容量大小的常用单位 .在未来,我们还会接触到各种各样的数据类型,并且这些数据在运算的 ...
- C语言noip复赛知识点,NOIP复赛知识点简述及复赛算法总结!
全国青少年信息学奥林匹克联赛(National Olympiad in Informatics in Provinces,简称NOIP) 转眼已到了下半年,马上将迎来一场重要的比赛--NOIP. 考前 ...
- C语言 猜随机数大小,C语言 猜数游戏--产生一个随机数
#include #include #include int main(int argc, const char * argv[]) { // insert code here... printf(& ...
- 随机数分布c语言,C++ piecewise_linear_distribution分段线性分布随机数用法详解
piecewise_linear_distribution 模板定义了浮点值的连续分布,它的概率密度函数是从一系列的样本值所定义的点得到的.每个样本值的权重都决定了它的概率密度值.图 1 展示了一个示 ...
- C语言打印链表的中间节点的算法(附完整源码)
C语言打印链表的中间节点的算法 C语言打印链表的中间节点的算法完整源码(定义,实现,main函数测试) C语言打印链表的中间节点的算法完整源码(定义,实现,main函数测试) #include < ...
- C语言链表返回具有的回文序列的算法(附完整源码)
C语言链表返回具有的回文序列的算法 C语言链表返回具有的回文序列的算法完整源码(定义,实现,main函数测试) C语言链表返回具有的回文序列的算法完整源码(定义,实现,main函数测试) #inclu ...
- C语言链表是否为循环表的算法(附完整源码)
C语言链表是否为循环表的算法 C语言链表是否为循环表的算法完整源码(定义,实现,main函数测试) C语言链表是否为循环表的算法完整源码(定义,实现,main函数测试) #include <io ...
- C语言矩阵M*N节省空间的算法(附完整源码)
C语言矩阵M*N节省空间的算法 C语言矩阵M*N节省空间的算法完整源码(定义,实现,main函数测试) C语言矩阵M*N节省空间的算法完整源码(定义,实现,main函数测试) #include < ...
- C语言字符串是否为pallindrome排列的算法(附完整源码)
C语言字符串是否为pallindrome排列的算法 C语言字符串是否为pallindrome排列的算法完整源码(定义,实现,main函数测试) C语言字符串是否为pallindrome排列的算法完整源 ...
最新文章
- 1-runtime的Method,IMP,Property,ivar
- 如何设计一门语言(九)——类型
- Java制作VCARD
- Mybatis(10)properties标签的使用及细节,typeAliases和package标签
- java+switch语句+枚举,Java枚举类型在switch语句中的正确用法
- 证件照尺寸修改、图片背景换色、照片大小压缩…几个在线图片编辑、处理网站推荐
- 基于Python实现网页版之复杂图片去水印
- 海洋大数据应用关键技术及应用前景
- 计算机金钱符号怎么打,电脑键盘上怎么打钱的符号
- 聊天软件黑盒测试,duckchat
- android 听筒播放音乐
- 榆熙教育:拼多多有效提高店铺出评率的技巧
- simulink中S函数格式
- tcpdump,tshark常用命令(一)
- special effects - 蜘蛛网背景特效
- 毕设完成过程及遇到的问题
- 探索未来,未解之谜,阅读类 app
- 关于等保2.0要求配置的身份鉴别(口令长度、复杂度、有效期)(口令登录失败、锁定多长时间)
- 南非世界杯对阵及电视直播表
- 牛客网-运维工程师能力评估(部分选题)
热门文章
- 【hdu4010】 Query on The Trees
- [转]vmware 域网络搭建
- sharepoint 添加解决方案 遇到的问题
- 7个习惯可以改变一个人和他的一生
- java怎么快速创建监听类_如何创建监听器
- 某厂面试:如何优雅使用 SPI 机制
- 从一线技术人员到阿里合伙人,主导了去“IOE”,没有他,阿里只能给美国公司打工!...
- 花了20分钟,给女朋友们写了一个web版群聊程序
- 2019年容器突然火了,到底什么是容器?!
- Javascript调试之console对象,它的一些小技巧你都知道吗?