农村留守儿童教育案例:C语言编程问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/29 02:24:39
题目是求S=a+aa+aaa...的值,a表示一个数,n表示a的位数,我已经求出来了,但是如果输入a=3,n=5,时,得出的答案就会变为负数,我知道这是定义上出了问题,但就是不知道应该定义成长整形还是无符号整形,或者什么之类的,我都试了,哪位可以指导一下
#include<stdio.h>
void main()
{ int s=0,a,i,t=0,n;

printf("qing shu lu 'a' yu 'n' zhi\n");
scanf("%d%d",&a,&n);
for(i=1;i<=n;i++)
{ t=t+a;
s=s+t;
a=a*10;

}
printf("a+aa+aaa+...=%d\n",s);
}

你可以定义为long型的,要不就定义一个double型的.

楼主可以用pow函数来做啊。可以求出x的y次方

是编译器的问题...

TC和WIN-TC 是16位编译器
整型位2字节
Dev-c 和 VC是32位编译器
整型为4字节

∴换个编译器吧
找个地方下个dev-c++

答案是37035, 你的程序没有问题, 问题是你的电脑,
37035大于32768,所以.....

我运行也是这样,应该不是电脑问题吧