当前位置: 代码迷 >> C语言 >> 求一个16的n次方程序?
  详细解决方案

求一个16的n次方程序?

热度:383   发布时间:2006-12-27 11:06:09.0
求一个16的n次方程序?
求一个16的n次方程序
怎么做一个循环实现得到16的N次方.
----------------解决方案--------------------------------------------------------
main()
{
long int i,s,n,m;
s=1;
i=16;
printf("please input n:");
scanf("%d",&n);
for(m=1;m<n;m++)
s=s*i;
printf("s=%d",s);

}
电脑TC出了一点问题,不知道这样行不行,先看下!~呵!

[此贴子已经被作者于2006-12-27 11:59:32编辑过]


----------------解决方案--------------------------------------------------------
  我刚刚试了一下,n为1,2,3,的时候可以,但是到4以后就不对了,请高手来指教一下,我也是菜鸟一个的!!
----------------解决方案--------------------------------------------------------
以下是引用雨帆在2006-12-27 11:53:54的发言:
main()
{
long int i,s,n,m;
s=1;
i=16;
printf("please input n:");
scanf("%d",&n);
for(m=1;m<=n;m++)
s=s*i;
printf("s=%d",s);

}
电脑TC出了一点问题,不知道这样行不行,先看下!~呵!

程序没什么大问题。少个等号。。红色部分。。数太大了就会溢出。。。

另外。。这个程序中i是个多余的变量

[此贴子已经被作者于2006-12-27 15:12:37编辑过]


----------------解决方案--------------------------------------------------------
不是这个问题, 我在这个上面改错了,我编译的时候是用<=的
你不相信你调试下!我想查出原因在哪里?i嘛,也没有什么影响的啊!
主要是看为什么n到4以后就老等于0了呢
----------------解决方案--------------------------------------------------------
以下是引用雨帆在2006-12-27 11:53:54的发言:
main()
{
long int i,s,n,m;
s=1;
i=16;
printf("please input n:");
scanf("%d",&n);
for(m=1;m<=n;m++)
s=s*i;
printf("s=%ld",s);

}
电脑TC出了一点问题,不知道这样行不行,先看下!~呵!


----------------解决方案--------------------------------------------------------

%d输出整形。。所以会溢出
%ld输出长整形


----------------解决方案--------------------------------------------------------

记得前面的忘记后面的去了,后面有没有办法让它不会溢出呢,用ld%的时候也只能输到7才能看到答案!
----------------解决方案--------------------------------------------------------
1L &lt;&lt; (4 * n);
----------------解决方案--------------------------------------------------------
回复:(雨帆)[em04][em04] 记得前面的忘记后面的去...
    大家可都是高手啊,雨帆和我是菜鸟!
----------------解决方案--------------------------------------------------------
  相关解决方案