好吧,第二篇
2016-06-15 13:36
225 查看
果然,没过语言关
来自oj的1066,删除不按照套路出牌
INPUT
10
20 40 32 67 40 20 89 300 400 15
OUTPUT
8
15 20 32 40 67 89 300 400
正常的删除代码如下:
for(int i=1;i<=m;i++)
{
for(int j=i+1;j<=m;j++)
if(a[i]==a[j])
{
for(int k=j;k<m;k++)
a[k]=a[k+1];
m--;
}
}
然而如果这样写,很明显,就会缺少一个数,在比较的过程中,会把下一个数字删掉,因为J++嘛,执行完一个循环,就会J++,判断出A[I]=A[J],此时不应该J+1;
所以,填一个条件如下
for(int i=1;i<=m;i++)
{
for(int j=i+1;j<=m;)
if(a[i]==a[j])
{
for(int k=j;k<m;k++)
a[k]=a[k+1];
m--;
}
else j++;
}
就是这个万恶的else j++.................
看起来,数组的处理还需要多下功夫。
来自oj的1066,删除不按照套路出牌
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。 |
10
20 40 32 67 40 20 89 300 400 15
OUTPUT
8
15 20 32 40 67 89 300 400
正常的删除代码如下:
for(int i=1;i<=m;i++)
{
for(int j=i+1;j<=m;j++)
if(a[i]==a[j])
{
for(int k=j;k<m;k++)
a[k]=a[k+1];
m--;
}
}
然而如果这样写,很明显,就会缺少一个数,在比较的过程中,会把下一个数字删掉,因为J++嘛,执行完一个循环,就会J++,判断出A[I]=A[J],此时不应该J+1;
所以,填一个条件如下
for(int i=1;i<=m;i++)
{
for(int j=i+1;j<=m;)
if(a[i]==a[j])
{
for(int k=j;k<m;k++)
a[k]=a[k+1];
m--;
}
else j++;
}
就是这个万恶的else j++.................
看起来,数组的处理还需要多下功夫。
相关文章推荐
- 使用 Libki 来管理公共用户访问计算机
- 你应该学习哪种编程语言?
- 微型计算机的始祖:Altair 8800
- [转]我们需要一种其他人能使用的编程语言
- 通过手机、电脑远程开关机,Windows和linux机手机,电脑相互控制
- C#语言主要特性总结
- jQuery数组处理详解(含实例演示)
- C语言中static的作用及C语言中使用静态函数有何好处
- php实现用手机关闭计算机(电脑)的方法
- PHP检测用户语言的方法
- 用IE重起计算机或者关机的示例代码
- jQuery数组处理方法汇总
- jquery实现删除一个元素后面的所有元素功能
- 一张图告诉你计算机编程语言的发展历史
- JavaScipt基本教程之JavaScript语言的基础
- 各种语言、服务器301跳转代码全集
- 计算机科学中32个常用的基础算法
- 查看Java所支持的语言及相应的版本信息
- 使用php判断浏览器的类型和语言的函数代码
- 不能在本地计算机启动 apache2.2解决方法