kb920811 2015-09-20 11:42 采纳率: 33.3%
浏览 3670
已采纳

scanf函数用%f读取double类型时,为什么会出现错误?

问题一:
#include

double power (double n,int p);
int main (void)
{
double x,xpow;
int exp;
printf("Enter a number and the positive integer power");
printf("to which will be raised . enter q");
printf("to quit.\n");
while (scanf("%1f%d",&x,&exp)==2)
{
xpow=power(x,exp);
printf("%.3g to the power %d is %.5g\n",x,exp,xpow);
printf("enter next pair of numbers or q to quit. \n");

}
printf("HOPE you enjoy this power trip --bye!\n");
return 0;

}
double power (double n,int p)
{

double pow=1;
int  i;
for (i=1;i<=p;i++)
    pow*=n;

return pow;

}
1)这个程序是《c primer plus》书上的一个例子,但是并不能计算出浮点数的整数次方,想了一天也没有看出是哪里的问题,若把double 换成float ,可以计算整数的整数次幂,还是计算不了浮点数的整数次方,这是为什么啊?
2)声明一下,用的是visual studio 编译器。
问题二:
#include
int main(void)
{
double num;
printf("please enter the number:\n");
scanf("%f",&num);
printf("your enter number is %f",num);
return 0;
}
这个程序输入num=1.2时,为什么不能打印出1.2,而是与之完全不想关的很大的数?

  • 写回答

3条回答 默认 最新

  • threenewbee 2015-09-20 11:56
    关注

    第一个程序,应该是你的输入有问题,调试下。%lf(不是1f,是lf,才是double)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建