回 帖 发 新 帖 刷新版面

主题:[原创]新人刚学BORLAND C++ BULIDER,怎么才能尽快入门(急)

本人刚开始学习编程,对于语法还不是太懂,昨天老师留了个作业是用BORLAND C++ BULIDER来编译一段自乘代码,希望高手帮我讲解下和分析下代码哪里错误,谢谢大家
#include <vcl.h> 
#pragma hdrstop 

#include "Unit1.h" 
//--------------------------------------------------------------------------- 
#pragma package(smart_init) 
#pragma resource "*.dfm" 
TForm1 *Form1; 
//--------------------------------------------------------------------------- 
__fastcall TForm1::TForm1(TComponent* Owner) 
        : TForm(Owner) 


//--------------------------------------------------------------------------- 

void __fastcall TForm1::Button1Click(TObject *Sender) 

   AnsiString strInput, strOutput; 
   int a; 
   int b; 

   Memo1->Clear();                // 清除界面 

   strInput = Edit1->Text; 
   a = strInput.ToIntDef(0); 
   b = 0; 

   if(a > 100 || a < 0) 
   { 
     ShowMessage("输入不能超过100且不能为负数"); 

     Edit1->Text = "0"; 
     Label3->Caption = "1"; 
      
     return; 
   } 

   Count(a, b);                   // 计算b=a! 

   strInput = IntToStr(a);        // 转化为字符串 
   strOutput = IntToStr(b);     // 转化为字符串 

   Edit1->Text = strInput; 
   Label3->Caption = strOutput; 

//--------------------------------------------------------------------------- 


void TForm1::Count(int nInput, int nOutput) 

    int sum = 1; 
    AnsiString strtemp = ""; 

    for(int i = 0; i <= nInput; i++) 
    { 
       sum = sum*i; 

       strtemp = IntToStr(i);         // 转化为字符串 
       strtemp += "\t"; 
       strtemp += IntToStr(sum);   // 转化为字符串 
       Memo1->Lines->Add(strtemp);   // 添加到Memo显示 
    } 

    nOutput = sum; 
}  

怎样修改才能正确通过1--100的计算

回复列表 (共5个回复)

沙发

我大概修改了一下,主要有这么几个问题:
第一,sum =1开始;
第二,sum的 类型不能是int。
void Count(int nInput, int nOutput)
{
    unsigned long  sum = 1;
    AnsiString strtemp = "";

    for(int i = 1; i <= nInput; i++)
    {
       sum = sum*i;

       strtemp = IntToStr(i);         // 转化为字符串
       strtemp += "\t";
       strtemp += IntToStr(sum);   // 转化为字符串
       Form1->Memo1->Lines->Add(strtemp);   // 添加到Memo显示
    }

    nOutput = sum;
}
但是,还有,问题到20就出现错误了,你能看到吗/

板凳

看到了,我到10就不行了,本来想用DOUBLE的,不知道行不行

3 楼

请问楼主在哪儿学习呀?我想学习学习

4 楼

公司培训的,不过大多靠自学

5 楼

你好.我是全职网赚工作者.
如果你有时间有电脑.会打字.
想在网络上创业.请联系我..
项目绝对真实.详情QQ空间资料
加盟请联系 QQ909065437

我来回复

您尚未登录,请登录后再回复。点此登录或注册