+ -
当前位置:首页 → 问答吧 → 求100!我哪错了

求100!我哪错了

时间:2011-12-15

来源:互联网

各位大神,我写了个输出100!每一位的代码,但是不对啊。各位给检查检查呗。 
#include <iostream>
using namespace std;
main()
{
int a[200];
a[0]=1;
for(int i=2;i<=10;i++)
{
int j=0;int n;
while(a[j]!=NULL)
{
a[j]=(a[j]*i)%10;
if(a[j+1]!=NULL)
a[j+1]=a[j+1]+((a[j]*i)/10);
if(a[j+1]==NULL)
a[j+1]=(a[j]*i)/10;
j++;
}
}
int m=0;
while(a[m]!=NULL)
{
cout<<a[m]<<endl;
m++;
}
cout<<endl<<endl<<m<<endl;
}

作者: zzbin123456   发布时间: 2011-12-15

主函数,你不写int main()啊?也没返回值!

作者: cbzjzsb123   发布时间: 2011-12-15

我改了一下还是不顶

#include <iostream>
using namespace std;
void main()
{
int a[200],b,c;
a[0]=1;
for(int i=2;i<=100;i++)
{
int j=0;int n;
while(a[j]!=NULL)
{
b=a[j];
a[j]=(a[j]*i)%10;
if(b*i>=10)
{
if(a[j+1]!=NULL)
a[j+1]=a[j+1]+((b*i)/10);
if(a[j+1]==NULL)
{a[j+1]=(b*i)/10;break;}
}
j++;
}

}
int m=0;
while(a[m]!=NULL)
{
cout<<a[m]<<endl;
m++;
}


}

作者: zzbin123456   发布时间: 2011-12-15

我也是初学者,没看懂你的代码,你是想通过怎样计算得出100的啊

作者: cbzjzsb123   发布时间: 2011-12-15

唉 我也不好解释阿。。。反正写得不对 你看着办吧///

作者: zzbin123456   发布时间: 2011-12-15

坐等高手,好像a[j]没有赋初值吧,没事,CSDN高手这么多,马上就有人来解答的

作者: cbzjzsb123   发布时间: 2011-12-15

我写了注释 看看有没有人能大体明白个啥意思

#include <iostream>
using namespace std;
void main()
{
 //老子就是想阿a[0]是个位,a[1]是十位,依此类推..
 int a[200],b,c;
 a[0]=1;
 for(int i=2;i<=100;i++)
 {
  int j=0;int n;
  while(a[j]!=NULL)
  {  
  b=a[j];//保留原位数
  a[j]=(a[j]*i)%10;//现在a[j]是这个位上的数
  if(b*i>=10)//如果b*i>=10说明有进位
  {
  if(a[j+1]!=NULL)//如果下一位不是空的话就该把下一位和进位加起来
  a[j+1]=a[j+1]+((b*i)/10);
  if(a[j+1]==NULL)//如果下一位是空下一位直接等于进位跳出循环
  {a[j+1]=(b*i)/10;break;}
  }
  j++;
  }
 
 }
 int m=0;
 while(a[m]!=NULL)//输出
 {
  cout<<a[m]<<endl;
  m++;
 } 
}

作者: zzbin123456   发布时间: 2011-12-15

a[j]!=NULL
亏你想的出。。。。。。。。。NULL是啥?????

还是你define了??????????????、、、、、、、


while(a[j]!=NULL)
{}

在循环前,先对a【】的范围作判定。。。。不然会越界访问。。。。。。。
你都没给a【】赋初值。。。我的神啊。。。没赋初值,你知道a【】中保存的啥数据???


还//老子就是想阿a[0]是个位,a[1]是十位,依此类推..
你脑子进水了????????????

作者: Qyee16   发布时间: 2011-12-15

热门下载

更多