c语言问题a+aa+aaa...

[复制链接]
查看11 | 回复2 | 2011-1-6 01:01:27 | 显示全部楼层 |阅读模式
#include
#include
void main()
{
long a,n,sum=0,temp=0;
printf("input the a and n:\n");
scanf("%ld%ld",&a,&n);
printf("sum=");
for(long i=1;i<=n;i++)
{
for(long j=1;j<=i;j++)

temp+=a*pow(10,j-1);
sum+=temp;
if(i==n)
printf("%ld=%ld",temp,sum);
else printf("%ld+",temp);
temp=0;
}
printf("\n");
}
为什么运行的时候n超过9就不正确了呢?
求高手解答

回复

使用道具 举报

千问 | 2011-1-6 01:01:27 | 显示全部楼层
long类型的最大值是2147483648,累加之后超过这个数了,溢出了。long改为unsigned long试试
回复

使用道具 举报

千问 | 2011-1-6 01:01:27 | 显示全部楼层
溢出了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行