【发布时间】:2017-07-20 10:04:17
【问题描述】:
不使用 pow() 求整数 m 的 n 次方的 C 程序。
输入:
m=3 n=2
output:
9.000
验证程序按预期工作的测试!
- 对于负 M
Input : -2 3 output : -8.000
- 对于负 N
Input : 2 -3 output : 0.125000
- 对于负 M 和 N
Input : -2 -3 output : -0.125000
但是我没有得到想要的输出
void main()
{
signed int m, n;
int i;
float p;
clrscr();
printf("Enter the number and its power (exponent)\n");
scanf("%d%d",&m,&n);
p=1;
if (n==0)
{
printf("%d raised to %d is: %f",m,n,p);
}
if (n>0)
{
for( i = 0 ; i < n ; i++ )
p*=m;
if(m>0)
printf("%d raised to %d is: %f",m,n,p);
if(m<0)
printf("%d raised to %d is: %f",m,n,-p);
}
if (n<0)
{
n=-n;
for( i = 0 ; i < n ; i++ )
p*=m;
if(m>0)
printf("%d raised to %d is: %f",m,-n,1/p);
if(m<0)
printf("%d raised to %d is: %f",m,-n,-(1/p));
}
getch();
}
能否为测试用例提供正确的程序?
我无法声明 signed float,因为它给出了错误。
【问题讨论】:
-
对于某些指定的输入,预期输出和实际输出是多少?您是否尝试过在调试器中单步执行代码?
-
是时候学习如何使用调试器了。
-
您介意再次运行第 3 个案例吗?因为this 另有说明。
标签: c floating-point integer signed