面试的一道机试题: 排序 难度(**)
来源:互联网 发布:淘宝的wap是什么意思 编辑:程序博客网 时间:2024/05/16 05:05
题目:插入数据,并排序
要求:1、随机插入不重复数据
2、排序,并在排序中可以输入数据控制进程
话说这道题排序不成问题,要说难点的话也就出在上述两个要求上吧。当时机试的电脑是一台HP的笔记本,里面能用的编译器也就是Microsoft Visual Studio 2005,我先用上面附带的PlusEdit文本编辑器早早的编辑好了一下C代码。然后瞅瞅Microsoft Visual Studio 2005有没有工程能够编译代码的,由于从来没用过,短时间找不到。面试我的人上网找了Tubor C 2.0帮我应了下急。在这里感慨一下Tubor C 2.0调试代码真难用。
话归正传,讲一讲我如何解决上述两条要求的。
先看一下变量定义,如果有变量不清楚的话,可以到这儿查
int a[100];
int b[100];
int temp,temp1;
int flag=1;
int enquire=1;
1、随机插入不重复数据
b[i]=i;
srand((unsigned)time(NULL));
for(i=0;i<100;i++)
...{
j=99-i;
do...{
temp=rand();
}while(temp<0||temp>j);
a[i]=b[temp];
temp1=b[j];
b[j]=b[temp];
b[temp]=temp1;
}
首先先定义一个同样大小的数组,赋值。注意这儿的所赋的值其实就是所有传递给目标数组的随机数的范围。我做好后,面试官问我,你做的随机数范围是0~99,那如果换个范围呢。我说,只要改变数组b的范围就行了。当然用我的方法还有一个附带的好处就是,即使随机数可能取的一样,赋值的数值也不会相同。
当时一直在想C里有没有取的随机数函数能限定范围的,打开头文件stdlib.h一看没有看到有这样的函数。于是用了一个do while循环给随机数函数取得值限定范围,貌似会影响效率的说。
2、排序,并在排序中可以输入数据控制进程
1、如果介于该次循环与100之间的数,输出该值对应的循环中间结果。
2、如果输入-1,直接输出最终结果。
3、如果输入0,则程序停止运行。
4、如果输入其它数值,则输出下一次的循环中间结果。*/
for(i=99;i>=0;i--)
...{
for(j=0;j<i;j++)
...{
if(a[j]>a[j+1])
...{
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
if(enquire)
...{
printf(" Press any number to continue... ");
scanf("%d",&flag);
}
if(flag>100-i&&flag<100)
...{
enquire=0;
}else if(flag==-1)
...{
enquire=0;
}else if(!flag)
...{
exit(0);
}else
...{
enquire=1;
printf("%dth result ",100-i);
for(k=0;k<100;k++)
...{
printf("%2d ",a[k]);
if((k+1)%10==0) printf(" ");
}
}
}
后来回到家,自己的电脑Visual Studio 2008上折腾这道题,Project types 选择Visual C++,新建Win32 Console Application项目。在Solusion Explorer的Resouce Files右键添加文件,文件后缀.c,编译运行,成功跳出黑框框。看来就不需要vc6.0了。
- 面试的一道机试题: 排序 难度(**)
- 一道关于排序的面试题
- 一道华为的机试题
- 华为的一道初步面试题,面试C++的
- 面试中关于虚函数的一道试题.
- 关于《程序员面试宝典》中的一道面试题的答案
- 关于《程序员面试宝典》中一道面试题的答案
- [面试小题目] SAP的一道面试题
- 一道淘汰85%面试者的百度开发者面试题
- 一道淘汰85%面试者的百度开发者面试题
- 一道淘汰85%面试者的百度开发者面试题?
- 一道淘汰85%面试者的百度开发者面试题
- 一道淘汰85%面试者的开发者面试题
- 一道淘汰85%面试者的百度开发者面试题
- 一道淘汰85%面试者的百度开发者面试题
- 一道淘汰85%面试者的百度开发者面试题
- 一道淘汰85%面试者的百度开发者面试题
- 一道淘汰85%面试者的百度开发者面试题
- JDBC的Statement概述(转)
- Oracle10g安装、升级、卸载和使用(Windows)
- 删除数据库中重复数据的几个方法
- cobol程序文件的格式---学习笔记
- sqlserver与c#中数据类型的对应关系
- 面试的一道机试题: 排序 难度(**)
- 网络分层的优点
- 关于NDoc在生成帮助文档的时候会出现的一些问题
- flex组件的verticalScrollPosition问题
- 记录几个手机开发网站
- COBOL程序的构成--学习笔记
- 关于程序员的成长摘记
- 强行隐身下载器15360
- WINFORM 多条件动态查询 通用代码的设计与实现