首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一个简单的程序?ACM高手快请进。解决思路

2012-02-15 
一个简单的程序??ACM高手快请进。我最近做的是ACM题目的1001我写的程序在下面但是为什么就是不可以成功我也

一个简单的程序??ACM高手快请进。
我最近做的是ACM题目的1001   我写的程序在下面     但是为什么就是不可以成功     我也知道错误在什么地方   但是我不会改,那为ACM大哥帮帮忙//谢谢,程序中我已经表明了有问题的地方   ,希望那位大哥帮帮忙。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
题目的意思就是求一个数     比如95.123   的12次方的精确的值,为548815620517731830194541.899025343415715973535967221869852721
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#include <iostream>
using   namespace   std;
int   main()
{
      float   n;
      int   b   ;
      int   a[100000];
      while(   cin   > >   n   > >   b   )
      {
              int   c,temp,len=1,i,j,k,l,m,e,f;
      a[0]   =   1;
      for(f   =   1;   f   <   100000;f++   )
      {
                  a[f]   =   0;
      }
     
        for(     i   =   1;     ;   i++)
{    
      n   *=   10;
   
      if(   n   -   int(n)   ==   0)break;         //有问题

}    
for(   j   =   0   ;   j   <   b;   j++)
{          
      c   =   0;
    for(   k   =   0;   k   <   len   ;   k   ++)
    {
temp   =   a[k]*n   +   c;
c   =   temp/10;
a[k]   =   temp%10;
    }
    while(   c   >   0)
    {
      len   ++;
      a[len   -   1]   =   c;
      c   =   c/10;
      a[len   -   1]   =   a[len   -   1]%10;

    }
}

    if(   len     <   i   *   b     )
{
            cout   < <   ". ";
  for(   m   =   i*b-len   -1;   m   > =   0;m--   )
      {
        cout   < <   "0 ";
            }
        for(   e   =   len   -1;e   > =0;e--)
        {
          cout   < <   a[e];
}
}    
    else   {
for(   l   =   len   -   1;l   > =   0;   l--)
                          {
    if(   l   ==     i*b   -1   )
  {
cout < <   ". ";
cout   < <   a[l];
    l--;
                              }
                cout   < <   a[l];


}
    }
   
cout   < <   endl;
      }
      system( "pause ");
return   0;
}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
输入的是:
95.123   12
0.4321   20
5.1234   15
6.7592     9
98.999   10
1.0100   12

输出的是:
548815620517731830194541.899025343415715973535967221869852721
.00000005148554641076956121994511276767154838481760200726351203835429763013462401
43992077088.899895999176441060077939143829369618591349367001047121879773131136072932137864237625137941245917684301824
29448126.764121021618164430206909037173276672
90429072743629540498.107596019456651774561044010001
1.126825030131969720661201

[解决办法]
参数定义有问题吧,而且数组大小定义也有问题,搂主自己再斟酌斟酌
[解决办法]
lz,你写的太乱了,都不知道你为什么要这样写?!
for(f = 1; f < 100000;f++ )
{
a[f] = 0;
}
有必要这样赋值?

热点排行