读书人

怎么打印1+11+111+1111+…+111111

发布时间: 2012-02-11 09:51:34 作者: rapoo

如何打印1+11+111+1111+……+111111111=?
有个问题想请教一下:
要求打印出:
1+11+111+1111+……+111111111=?
2+22+222+2222+……+222222222=?
3+33+333+3333+……+333333333=?
……
……
9+99+999+9999+……+999999999=?

我写的代码如下:
main()
{
int i,j;
long f1,f2,sum=0;
for(i=1;i <=9;i++){
f1=i;
printf( "sum= ");
for(j=1;j <=9;j++){
f2=f1*10+i;
sum+=f1;
if(j==9)printf( "%d= ",f1);
else printf( "%d+ ",f1);
f1=f2;
}
printf( "%d\n ",sum);
}
}

不知哪出错了?烦请帮忙看看!

[解决办法]
#include <stdio.h>
int main()
{
int i,j;
long f1,f2,sum=0;
for(i=1;i <=9;i++)
{
f1=i;
sum=0;//加上
printf( "sum= ");
for(j=1;j <=9;j++)
{
f2=f1*10+i;
sum+=f1;
if(j==9)printf( "%d= ",f1);
else printf( "%d+ ",f1);
f1=f2;
}
printf( "%d\n ",sum);
}
return 0;
}
[解决办法]
#include <stdio.h>
int main()
{
int i,j;
long int f1,f2,sum=0;
for(i=1;i <=9;i++)
{
f1=i;
sum=0;
printf( "sum= ");
for(j=1;j <=9;j++)
{
f2=f1*10+i;
sum+=f1;
if(j==9)printf( "%ld= ",f1);
else printf( "%ld+ ",f1);
f1=f2;
}
printf( "%ld\n ",sum);
}
return 0;
}
改好了,就是没个数都用ld 长整形输出

读书人网 >C语言

热点推荐