C语言写m的n次方,不用pow函数,自己写了一个程序,但是答案部队……请前辈指点下
老师的要求是m为实数(用double),n用整数(int),我自己写了一个程序,但是都用int的时候能得到正确答案,把m那边换成double答案就变的极其奇怪……以下是我...
老师的要求是m为实数(用double),n用整数(int),我自己写了一个程序,但是都用int的时候能得到正确答案,把m那边换成double答案就变的极其奇怪……以下是我写的。。。。请前辈帮忙找下到底是那里错了。。。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
double power(double radix, int n)
{
double result_data = 1;
for (int i = 0; i<n; i++)
{
result_data = result_data*radix;
}
return result_data;
}
double main()
{
double radix; int n;
printf("底数是?->");
scanf("%f", &radix);
printf("指数是?->");
scanf("%d", &n);
printf("%f的%d次方是%fです。\n", radix, n, power(radix, n));
return 0;
}
就是这样……老师给了一个最后应该得到的一个例子:
2.500000的3次方是15.625000。
刚学C语言两个多月,好多基础知识还没有吃透,请前辈能抽出一点时间帮忙指导下。。。万分感谢…… 展开
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
double power(double radix, int n)
{
double result_data = 1;
for (int i = 0; i<n; i++)
{
result_data = result_data*radix;
}
return result_data;
}
double main()
{
double radix; int n;
printf("底数是?->");
scanf("%f", &radix);
printf("指数是?->");
scanf("%d", &n);
printf("%f的%d次方是%fです。\n", radix, n, power(radix, n));
return 0;
}
就是这样……老师给了一个最后应该得到的一个例子:
2.500000的3次方是15.625000。
刚学C语言两个多月,好多基础知识还没有吃透,请前辈能抽出一点时间帮忙指导下。。。万分感谢…… 展开
4个回答
2014-11-20
展开全部
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
double power(double radix, int n)
{
double result_data = 1;
for (int i = 0; i<n; i++)
{
result_data = result_data*radix;
}
return result_data;
}
int main()
{
double radix; int n;
printf("底数是?->");
scanf("%lf", &radix);//这里
printf("指数是?->");
scanf("%d", &n);
printf("%f的%d次方是%fです。\n", radix, n, power(radix, n));
return 0;
}
追问
噢噢抱歉啊前辈,昨天晚上在学微积分就没看手机……那我除了f这里错了程序写的还有别的错误么0.0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把scanf 和printf中的%f换成%lf就可以了,double输出格式是%lf, %f是float的输出格式
更多追问追答
追问
噢噢抱歉啊前辈,昨天晚上在学微积分就没看手机……那我除了f这里错了程序写的还有别的错误么0.0对于后面没太大的信心……
追答
没有,其他的都正确
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
scanf("%f", &radix);
改成scanf("%lf", &radix);
f是给float用的,而你用过的是double
改成scanf("%lf", &radix);
f是给float用的,而你用过的是double
更多追问追答
追问
噢噢抱歉啊前辈,昨天晚上在学微积分就没看手机……那我除了f这里错了程序写的还有别的错误么0.0……后面的没太大的信心……
追答
没错误,要有信心
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为定义了double类型
要将
scanf("%f", &radix);
=>scanf("%lf", &radix);
同理
printf("%lf的%d次方是%lf
要将
scanf("%f", &radix);
=>scanf("%lf", &radix);
同理
printf("%lf的%d次方是%lf
追问
噢噢抱歉啊前辈,昨天晚上在学微积分就没看手机……那我除了f这里错了程序写的还有别的错误么0.0
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询