| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1570 人关注过本帖
标题:哪个环节有毛病呢?
只看楼主 加入收藏
苍穹之舞
Rank: 2
等 级:论坛游民
威 望:1
帖 子:62
专家分:35
注 册:2014-10-7
结帖率:87.5%
收藏
已结贴  问题点数:20 回复次数:4 
哪个环节有毛病呢?
某人去投高利贷,按照规则,投资一万元,每天可返回利息300元,满两月后,返还截止。
现,该人想知道,到哪一天,他的单日利息与本金相等。

为此,我写了一段VB

Dim i As Integer           i 是天数            
Dim b As Double            b是本金
Dim s As Double            s 是本息之和


Private Sub Command1_Click()
  i = 1          赋初值   
  b = 1
  s = 0
 
  
  Do

    s = s + b                           do loop循环,每循环一次,就把利息加入总和,并把天数增加一次
                                         当本息之和大于2万时,终止循环
    b = b * 0.03
    i = i + 1
   
  Loop While s > 2
  
  Print "第"& i & "天利息达到1万元。"
  
   
End Sub

Private Sub Command2_Click()
  End
  
End Sub



运行结果是 第2天利息就达到了1万元。可是,这明显是错误的

究竟是哪个环节有毛病呢?

搜索更多相关主题的帖子: 毛病 Sub End 循环 Dim 
2022-06-01 11:54
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:10 
    s = s + b            把利息加上去,然后 b 应该是恒等于0.03,你b的初值是多少?
    b = b * 0.03         那这里是干嘛? 利息 B 不是恒等于 0.03 的吗?
收到的鲜花

授人于鱼,不如授人于渔
早已停用QQ了
2022-06-01 12:54
苍穹之舞
Rank: 2
等 级:论坛游民
威 望:1
帖 子:62
专家分:35
注 册:2014-10-7
收藏
得分:0 
以下是引用风吹过b在2022-6-1 12:54:51的发言:

    s = s + b            把利息加上去,然后 b 应该是恒等于0.03,你b的初值是多少?
    b = b * 0.03         那这里是干嘛? 利息 B 不是恒等于 0.03 的吗?

b是本钱,  取本钱的本字声母
b的初值是1 ,  1万元
s=s+b            s 是本利和   

此人把获得的利息300元作为新的本钱,再次投入高利贷公司,获得新的利息

所以 b=b*0.03
在第一次循环里 b=300*0.03
2022-06-01 16:55
hmj0745
Rank: 2
等 级:论坛游民
帖 子:53
专家分:83
注 册:2021-11-6
收藏
得分:10 
回复 楼主 苍穹之舞
Sub 计算()
Dim 本金, 利息 As Double
Dim 天数 As Long
天数 = 0
本金 = 10000
利息 = 300
Do While 利息 < 10000 '//当达到原本金时
天数 = 天数 + 1
本金 = 本金 + 利息
利息 = Round(本金 * 0.03, 2)
Loop
MsgBox 天数
MsgBox 本金 '//累积本金
MsgBox 利息
End Sub

[此贴子已经被作者于2022-6-1 19:06编辑过]

收到的鲜花

不去做永远没有结果!
2022-06-01 18:58
苍穹之舞
Rank: 2
等 级:论坛游民
威 望:1
帖 子:62
专家分:35
注 册:2014-10-7
收藏
得分:0 
回复 4楼 hmj0745
谢谢你的启发!
我重新了代码

Dim d As Integer
Dim bj As Double
Dim lx As Double

Private Sub Command1_Click()
    bj = 1
    d = 0
    lx = 0
   
    Do While lx < 1
      d = d + 1
      lx = Round(bj * 0.03, 2)
      bj = bj + lx
    Loop
   
    Print "第" & d & "天,单日利息超过一万元。"
    Print "此时,滚动本金是" & bj & "万元。"
   
      
End Sub
2022-06-01 20:34
快速回复:哪个环节有毛病呢?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.046366 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved