c - 计算 n! 和 x^n 并进行计算
问题描述
编写一个 C 程序来计算 (x^n)/(n!) 其中 x 是浮点数,n 是大于或等于零的整数。
我编写了以下代码:
#include<stdio.h>
#include<math.h>
void main()
{
float x,p;
int i,n,f=1;
printf("Enter the value of x,n\n");
scanf("%d %d",&x,&n);
if(n>0)
{
for(i=1;i<=n;i++)
{
f=f*i;
}
p=(float)pow(x,n)/f;
printf("The value of p is %.3f",p);
}
if(n==0)
{
p=(float)pow(x,n)/1;
printf("The value of p is %d",p);
}
getch();
}
但这运行得并不好。我哪里出错了?
解决方案
在你的问题中,我已经认识到 3 个问题。
主要问题是
scanf("%d %d",&x,&n);
应该改成scanf("%f %d",&x,&n);
因为x
`float type @dragosht 已经提到了它。printf("The value of p is %d",p);
应该是正确的,printf("The value of p is %f",p);
因为p
也是float
类型。最好
p = 0;
在开始时设置,因为您没有为p
使用键盘分配值。有时,您会因此而获得损坏的值。
推荐阅读
- java - 如何将匹配器添加到 HttpSecurity spring web secure
- sql - 如何访问 LotusScript 代理中的 SQL 计数结果值
- python - Python 中 Unicode 字符的显示问题(组合字符、假名字符等)
- scala - How to avoid OutOfMemoryError in a small ArrayBuffer in a scope of small function?
- azure-devops - Not Getting Azure DevOps Code Coverage Information From Azure DevOps Services REST APIs
- ios - SwiftUI SQLite ForEach list data
- javascript - 如何在 JavaScript 中生成 n 矩阵
- sql-server - 存储过程和触发器执行阻塞
- c# - UIView.ZoomAndCenterRectangle() 仅在调用两次时才能正常工作
- google-bigquery - 熊猫 fillna 的 Bigquery 等效项(method='ffill')