楼主: 小洋仔
6226 4

[问答] 大神们,比比眼里,帮我看看我这个程序出错在哪里? [推广有奖]

  • 2关注
  • 0粉丝

大专生

95%

还不是VIP/贵宾

-

威望
0
论坛币
30 个
通用积分
1.0600
学术水平
5 点
热心指数
9 点
信用等级
5 点
经验
409 点
帖子
51
精华
0
在线时间
49 小时
注册时间
2013-10-11
最后登录
2016-3-20

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
> p<-c(3,5,6,7,9,8)
> position<-function(p,left,right)
+ {
+  left=1
+  right=6
+  ch=p[1]
+  while(left<right)
+  {
+             while(p[right]>=ch)
+       {right=right-1}
+ if(left<right)
+ {
+                   temp=p[right]
+ p[right]=p[left]
+ p[left]=temp
+  
+ }
+ while(p[left]<=ch)
+              {left=left+1}
+             if(left<right)
+             {
+ temp=p[left]
+ p[left]=p[right]
+ p[right]=temp
+             }
+  }
+   p[left]=ch
+  return (left)
+ }
> position(p,1,6)
Error in while (p[right] >= ch) { : argument is of length zero
>
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:position OSI POS sit TIO 程序

沙发
jmpamao 发表于 2013-10-21 20:44:56 |只看作者 |坛友微信交流群
还是在排序吗?

使用道具

藤椅
小洋仔 学生认证  发表于 2013-10-21 20:49:46 |只看作者 |坛友微信交流群
是的。呜呜,自学的R,老师让我实现快速排序的算法。必须自己实现,不要套用别人的代码

使用道具

板凳
zhgzhckc 发表于 2013-10-22 00:20:11 |只看作者 |坛友微信交流群
把p<-c(3,5,6,7,9,8)放到function里面去。

当你把p<-c(3,5,6,7,9,8)放在function外面时,p<-c(3,5,6,7,9,8)的这个p所在的环境是GlobalEnv。

而function(p,left,right)里面的这个p的环境是function本身。换句话说,你只定义了GlobalEnv里的p,但是还没有定义function里的p,你程序里的两个p是不同的两个p。

所以R报错告诉你,“argument 的长度是0”。也就是说,function(p, left, right)找不到你想要的那个function环境里的p。
已有 1 人评分热心指数 收起 理由
qoiqpwqr + 1 热心帮助其他会员

总评分: 热心指数 + 1   查看全部评分

使用道具

报纸
小洋仔 学生认证  发表于 2013-10-22 21:25:07 |只看作者 |坛友微信交流群
zhgzhckc 发表于 2013-10-22 00:20
把p
好像还不行,亦然会报错。非常感谢你。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-2 15:49