标题:C#操作碰到的问题
只看楼主
OneHunter
Rank: 2
等 级:论坛游民
帖 子:25
专家分:26
注 册:2010-10-28
 问题点数:0 回复次数:6 
C#操作碰到的问题
using System;
using System.Collections.Generic;
using
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace _16
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            double P = 0, r = 0;
            int i = 0;
            P = Double.Parse(textBox1.Text);    //p为本金,r为年利率,下同
            r = Double.Parse(textBox2.Text);
            while (P < 2 * P)
            {
                i++;
                P = P * Math.Pow(1 + r, 1);
            }
            textBox3.Text = i.ToString();    //这句修改一下.   
       }

        private void button2_Click(object sender, EventArgs e)
        {
            double P = 0, r = 0;
            int i = 0;
            P = Double.Parse(textBox1.Text);
            r = Double.Parse(textBox2.Text);
            while (P < 1000000)
            {
                i++;
                P = P * Math.Pow(1 + r, 1);               
            }
            textBox4.Text = i.ToString();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            textBox1.Text = "";
            textBox2.Text = "";
            textBox3.Text = "";
            textBox4.Text = "";
        }
    }
}

上面是我打的窗体应用程序代码,可是我输出textbox3,4 的时候,发现数值很大,我把上面那句textBox3.Text = i.ToString();  改为textBox3.Text = P.ToString();,发现输出的数值大的离谱,可是我觉得算法没什么问题。。。。纠结~!
2011-04-13 16:34
OneHunter
Rank: 2
等 级:论坛游民
帖 子:25
专家分:26
注 册:2010-10-28
得分:0 
本来想上传 压缩文件,可是发现没那个功能, 不知道大家只是看代码,能不能理解我的意思。。。

我还好~!
2011-04-13 16:36
OneHunter
Rank: 2
等 级:论坛游民
帖 子:25
专家分:26
注 册:2010-10-28
得分:0 
找到  添加附件的功能了,上传程序的压缩文件   求教~!!!!!!!!!!
16.zip (42.31 KB)

我还好~!
2011-04-13 16:39
OneHunter
Rank: 2
等 级:论坛游民
帖 子:25
专家分:26
注 册:2010-10-28
得分:0 
额,我想确实是我的算法有问题。。。。   代码发出来,求教,代码有什么问题?
 static void Main()
    {
        double P = 1000, r = 1;
        int i = 0;        
        while (P < 2 * P)
        {
            i++;
            P = P * Math.Pow(1 + r, 1);
        }
        Console.WriteLine("P={0}", P);
    }                  

这个程序运行以后  竟让输出P=无穷大,   我纠结了。。。  之前的也是这个问题,算法错误,  可我不知道在哪里  ,求教~!!!!

我还好~!
2011-04-13 16:50
OneHunter
Rank: 2
等 级:论坛游民
帖 子:25
专家分:26
注 册:2010-10-28
得分:0 
死循环
while (P < 2 * P)永远成立,P永远小于2*P,除非负数。
   打扰大家了,   竟然出了个这么菜的错误。。。  哈,新手,以后还希望大家能多多指教。

上面的压缩文件也是这个错误,所以大家不用费功夫下载了,  多谢大家查看此问题。

[ 本帖最后由 OneHunter 于 2011-4-13 17:33 编辑 ]

我还好~!
2011-04-13 16:57
zhp223
Rank: 5Rank: 5
等 级:职业侠客
帖 子:99
专家分:362
注 册:2010-3-21
得分:0 
这么明显的错误

日有所思,夜有所梦
2011-04-13 18:14
OneHunter
Rank: 2
等 级:论坛游民
帖 子:25
专家分:26
注 册:2010-10-28
得分:0 
哈哈,发现问题后,我也纠结的可以了。。

我还好~!
2011-04-13 20:02



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-336542-1-1.html




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

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