C语言数据溢出问题 求救~~

来源:百度知道 编辑:UC知道 时间:2024/05/16 18:26:50
题目:
输出3^i(^表示方幂),i从1到16,中间用空格分隔
我的答案:
#include<stdio.h>
main()
{
long i,a;
a=1;
for(i=1;i<=16;i++)
{
a=a*3;
printf("%d ",a);
}
}
就算改成长整型的仍然会溢出 不知道怎么办了 请知道的高手帮帮忙!> <

printf("%d ",a);
改为
printf("%ld ",a);长整型输出要用ld

用double 但可能精度会差一些

我试了一下没有益出

你直接调用pow(double x,double y)函数,计算x^y的值,返回类型为double,在math.h里

什么编译器 VC 的long是4字节 32位 最大 2147483648 比2^16大吧

你用unsigned long