楼主: 紫色的天天
1121 6

[问答] 求解答!!循环计算不完是哪里出错了吗~~ [推广有奖]

  • 0关注
  • 0粉丝

高中生

0%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
250 点
帖子
13
精华
0
在线时间
23 小时
注册时间
2014-7-20
最后登录
2019-3-1

楼主
紫色的天天 在职认证  发表于 2016-5-24 08:57:28 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
想要d中每组间隔小于10的数存在一起输出来,但目前计算不完,代码如下:
> d
[1]  478  477  477  477  476  483  609  635
[9]  654  947  947  948  948  948  949  949
[17]  949  948  948  948  948  950  950  963
[25] 1020 1021 1020 1020 1020 1018 1074 1074
[33] 1163 1161 1161 1176 1176 1176 1176 1206
[41] 1265 1264 1265
i=length(d)
f=NULL
while(3<=i&i<=length(d)){
  for(j in (i-1):1){
    while(d[i]-d[j]>=10&d[i]-d[j]>=-10){
      f<-c(i:(j+1))
      i=j
      print(f)
      print(i)
    }
  }
}

二维码

扫码加我 拉你入群

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

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

关键词:哪里出错了 求解答 length while null

沙发
jinkelazzz 发表于 2016-5-24 09:46:14
没有终止循环的语句啊

藤椅
紫色的天天 在职认证  发表于 2016-5-24 10:11:34
jinkelazzz 发表于 2016-5-24 09:46
没有终止循环的语句啊
刚刚弄出来了,是由于6:1不符合while循环所以进不去,变成死循环~~
但要怎么才能把6:1放进去呢

板凳
紫色的天天 在职认证  发表于 2016-5-24 10:14:43
修改的代码虽然能够完成计算结束循环,但6:1依然没有在里面计算,怎样才能放进去呢?另:f中一行只有一个数的是需要删掉的,要怎样才能把它剔除呢?
i=length(d)
p=NULL
for(z in 1:(i-1)){
  if(d[z+1]-d[z]>=10|d[z+1]-d[z]<=-10){
    a0<-c(p,(z+1))  #存储每组大于等于10的截点
    print(a0)
  }
}
f=NULL
while(a0<=i&i<=length(d)){
  for(j in (i-1):1){
    while(d[i]-d[j]>=10|d[i]-d[j]<=-10){
      f<-c(i:(j+1))
      i=j
      print(f)
    }
  }
}
已有 1 人评分论坛币 收起 理由
jiangbeilu + 10 鼓励积极发帖讨论

总评分: 论坛币 + 10   查看全部评分

报纸
zl66983279 在职认证  发表于 2016-5-24 17:35:15
紫色的天天 发表于 2016-5-24 10:14
修改的代码虽然能够完成计算结束循环,但6:1依然没有在里面计算,怎样才能放进去呢?另:f中一行只有一个数 ...
a0里面没有存储没有大于等于10的截点,最终只存了最后一组的大于等于10的截点。要想都存下来需要
i<-length(d)
p<-NULL
for(z in 1:(i-1)){
  if(d[z+1]-d[z]>=10|d[z+1]-d[z]<=-10){
    p<-c(p,(z+1))  #存储每组大于等于10的截点,
  }
}
p
已有 1 人评分论坛币 收起 理由
admin_kefu + 20 热心帮助其他会员

总评分: 论坛币 + 20   查看全部评分

地板
zl66983279 在职认证  发表于 2016-5-24 17:41:18
余下你说的话没看懂,你可以再详细的说一下你想干什么。
由于你的a0只是一个值,while循环括号里面的代码不会发生变化,a0<=i&i<=length(d)没有任何意义,是必然满足的条件。不知道你想说明什么。(a0、i、length(d)都是常数,且a0=41,i=length(d)=43)

7
zl66983279 在职认证  发表于 2016-5-24 18:08:42
你是不是想知道大于等于10的截点的序号及相应值?

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 17:57