来自用户输入的双指数
Posted
技术标签:
【中文标题】来自用户输入的双指数【英文标题】:Double Exponent from user input 【发布时间】:2016-04-20 07:00:38 【问题描述】:所以我的问题与双精度有关,我试图从用户那里获取任何值的小数点输入,它的指数也是小数点,以便在另一个函数中显示计算后的结果,其中变量将值作为双精度传递我也使用了两倍的输出,但最终结果是 1.00000,即使我将输出说明符用作 %lf%。
#include <stdio.h>
double pwra (double, double);
int main()
double number, power, xx;
printf("Enter Number: ");
scanf("%lf", &number);
printf("Enter Number: ");
scanf("%lf", &power);
xx=pwra (number,power);
printf("Result: %lf", xx);
return 0;
double pwra (double num, double pwr)
int count;
int result = 1;
for(count=1;count<=pwr;count++)
result = result*num;
return result;
【问题讨论】:
欢迎来到 ***,@TryllZ。您会发现,如果您将代码格式化为易于阅读,您会更快地获得更好的帮助。另外:你从来没有在这里真正问过问题,你只是发表了声明。尝试尽可能具体地说明您要弄清楚的是什么。 好的,对不起,我的印象是同一个人会回复我之前的问题,无论如何谢谢,现在将编辑它.. 那些人可能会,但人们(比如我!)也可能会在网站首页或通过其他方式找到这个问题。每个问题都应尽可能独立,以确保 (a) 尽可能广泛的潜在回答者可以访问它,并且 (b) 尽可能对以后可能有相同问题的其他人有用。 @Paul,我很抱歉,因为我不知道任何人都可以编辑我的代码,其次我是编程新手,对这些东西不熟悉,请不要抨击我 :) 我已经在几分钟前回答了您的问题(见下文)。以供将来参考,请注意代码格式(没有人想调试不可读的代码混乱),您可能还想获得a good book on C 和learn how to use your debugger。 【参考方案1】:您在pwrs()
函数中为result
使用了错误的类型。
变化:
int result = 1;
到:
double result = 1.0;
请注意,如果您学会使用调试器,这种简单的错误很容易识别。延伸阅读:How to debug small programs.
还要注意pwr
应该是int
,而不是double
,因为您的函数仅适用于整数指数。
【讨论】:
我试过了,这次结果是双精度和十进制值,但结果与计算器结果不同..?!,困惑..调试器没有显示错误.. @TryllZ:调试器不会“显示错误”(除了崩溃)——您需要学习如何使用它来逐步执行您的代码、检查变量,从而了解为什么您的代码不会不能像你期望的那样工作 - 如果你想学习成为一名程序员,这是必不可少的。 先生,我知道鼠标悬停时的调试显示了当时存储在变量中的值,但 Qunicy 没有鼠标悬停进行调试,Dev C++ 在调试时有时会出现崩溃..跨度> 好吧,除非你有一个可以工作的调试器,否则你会发现编写代码非常困难 - 使用调试器的替代方法是添加战略性printf
语句来检查变量等,但这要慢得多,而且比使用像样的调试器更乏味。
@TryllZ “...结果是双精度和十进制值,但结果与计算器结果不同”缺乏有用的信息。说明 1) 输入、2) 输出和 3) 预期输出要有用得多。以上是关于来自用户输入的双指数的主要内容,如果未能解决你的问题,请参考以下文章