求问一个pow函数实现的小问题
个人感觉所写代码没问题但不知道是不是数据类型的原因
每次输入进去一个小数都会有问题
无法正确得到base的值
求大佬指点
代码如下:
#include<math.h>
#include<stdio.h>
double a;
int b;
float result=1;
double power(double base,int exponent)
{
for(int i = 1;i <= exponent;i++)
result *= base;
//result = pow(base,exponent);
return result;
}
int main()
{
printf("Please input the base:\n");
scanf("%f",&a);
printf("Please input the exponent:\n");
scanf("%d",&b);
power(a,b);
printf("The result of the pow is %f",result);
return 0;
}
代码格式化错了,double数据类型应该用 %lf ,而不是 %f
float 用 %f 哈,参考代码:
#include<math.h>
#include<stdio.h>
double a;
int b;
float result=1;
double power(double base,int exponent)
{
for(int i = 1;i <= exponent;i++)
result *= base;
//result = pow(base,exponent);
return result;
}
int main()
{
printf("Please input the base:\n");
scanf("%lf",&a);
printf("Please input the exponent:\n");
scanf("%d",&b);
power(a,b);
printf("The result of the pow is %.2lf",result);
return 0;
} 本帖最后由 jackz007 于 2020-11-14 20:48 编辑
随便用全局变量可不是一个好习惯,全局变量必须是山穷水尽时候的无奈之选。
#include <stdio.h>
double power(double base , int exponent)
{
double result ;
int i ;
for(i = 0 , result = 1.0 ; i < exponent ; i ++) result = result * base ;
return result ;
}
int main()
{
double base ;
int exponent ;
printf("Please input the base : ") ;
scanf("%lf" , & base) ;
printf("Please input the exponent : ") ;
scanf("%d" , & exponent) ;
printf("The result of the pow is %lf\n" , power(base , exponent)) ;
} jackz007 发表于 2020-11-14 20:45
随便用全局变量可不是一个好习惯,全局变量必须是山穷水尽时候的无奈之选。
为什么不能随便使用全局变量吗?窃以为相反如果只是在函数里面定义变量不是会受到scope 和living memory的影响吗? jpan1221 发表于 2020-11-14 20:53
为什么不能随便使用全局变量吗?窃以为相反如果只是在函数里面定义变量不是会受到scope 和living memory ...
在代码量和变量比较少的程序中看不出全局变量的危害,当你的项目很大的时候,全局变量会让你难以理清头绪。 jackz007 发表于 2020-11-14 21:03
在代码量和变量比较少的程序中看不出全局变量的危害,当你的项目很大的时候,全局变量会让你难以理 ...
嗯嗯好的 谢谢
还想请问一下小甲鱼给的printf的format里面%f不也是支持double的吗 如图所示 为什么在这个程序里面不可以?
页:
[1]