why!
#include <stdio.h>#include<math.h>
int main()
{
printf("请输入一个整数:");
int i;
int g;
scanf_s("%d", &i);
g = pow(i, 5);
printf(" 128的五次方是:%u\n", g);
return 0;
}
为什么输出结果不是34359738368,而是2147483648啊,兄弟们 超出int的取值范围了,可以看看小甲鱼的课程https://xxx.ilovefishc.com/forum/201512/27/205729vnwzeadn08gx9h89.png #include <stdio.h>
int main(void)
{
unsigned long long d , i , m , n ;
scanf("%I64u%I64u" , & n , & d) ;
for(m = 1LL, i = 0 ; i < d ; i ++) m *= n ;
printf("%I64u 的 %I64u 次方是:%I64u\n" , n , d , m) ;
}
编译、运行实况:
D:\0002.Exercise\C>x
128 5
128 的 5 次方是:34359738368
D:\0002.Exercise\C> 来学习了
页:
[1]