当前位置: 代码迷 >> C语言 >> 这个程序错在哪了?
  详细解决方案

这个程序错在哪了?

热度:101   发布时间:2006-02-11 19:49:00.0
呵呵,可以算,但不对.{接近对}

#include "stdio.h"
main()
{
long i,n,m,x=0,y;
for (i=1;i<=9;i++)
{
y=i;
for (n=0;n<=8;n++)
{x=x+y;
y=y*10+i;}
printf ("x=%d\n",x);}
}

你看一下这个,为什么错误了呢?

[此贴子已经被作者于2006-2-11 19:51:37编辑过]


----------------解决方案--------------------------------------------------------
呵呵 我刚才自作聪明的加了点东西,可能是算法的问题.你的输出格式应该是"%ld"
----------------解决方案--------------------------------------------------------
楼上,感谢.

我的编程是对,就是输出哪个l少了...狂晕.
----------------解决方案--------------------------------------------------------
晕...不对?

只有 1+11+111+.....这个是对的,其他全错??
----------------解决方案--------------------------------------------------------
#include "stdio.h"
main()
{
long i,n,m,x,y;
for (i=1;i<=9;i++)
{
y=i;
x=0;
for (n=0;n<=8;n++)
{x=x+y;
y=y*10+i;}
printf ("x=%ld\n",x);}
}

嘻嘻,对了
----------------解决方案--------------------------------------------------------

int main()
{
int i=0;
long c=0,x=0;
for(;i<9;i++,c+=(x=x*10+1));
for(i=1;i<10;printf("%ld\n",c*i++));

}


----------------解决方案--------------------------------------------------------
楼上的return 0;

[此贴子已经被作者于2006-2-11 21:33:32编辑过]



----------------解决方案--------------------------------------------------------
本来默认有的,但是copy上来的时候不知道怎么少了一行
所以倒数第二行是空的。
----------------解决方案--------------------------------------------------------
以下是引用神vLinux飘飘在2006-2-11 20:40:00的发言:

int main()
{
int i=0;
long c=0,x=0;
for(;i<9;i++,c+=(x=x*10+1));
for(i=1;i<10;printf("%ld\n",c*i++));

}

比我简短多了,佩服.


----------------解决方案--------------------------------------------------------

那是因为我的算法和你们的不一样

我是先算出1+11+111+.....+111111111 = x
然后剩下的2+22+222+.....+222222222 = 2*(x)
以次类推


----------------解决方案--------------------------------------------------------
  相关解决方案