新人提问,为什么我这个程序输出一直都是inf

社区

C语言 帖子详情 新人提问,为什么我这个程序输出一直都是inf 易隐 2019-09-29 08:47:16 新人提问,刚刚接触c语言,我这个程序里面有什么问题・_・?输出一直是inf。

主要是想运算 n!/m!(n-m)!

#include

double fact (int n);

int main ()

{

int i,n,m;

double a,b,result1,result2,result3;

printf("Enter n:");

scanf("%d",&n);

for(i=1;i<=n;i++){

result1=fact(i);

}

printf ("Enter m=");

scanf ("%f",&m);

if (m<=n){

for (i=1;i<=m;i++){

result2=fact(i);

}

}

a=n-m;

for(i=1;i<=a;i++){

result3=fact(i);

}

b=result1/(result2*result3);

printf("结果是%g\n",b);

return 0;

}

double fact (int n)

{

int i;

double product;

product=1;

for (i=1;i<=n;i++){

product=product*i;

}

return product;

}

...全文

1207 5 打赏 收藏 新人提问,为什么我这个程序输出一直都是inf 新人提问,刚刚接触c语言,我这个程序里面有什么问题・_・?输出一直是inf。 主要是想运算 n!/m!(n-m)! #include double fact (int n); int main () { int i,n,m; double a,b,result1,result2,result3; printf("Enter n:"); scanf("%d",&n); for(i=1;i<=n;i++){ result1=fact(i); } printf ("Enter m= 复制链接

扫一扫 分享 转发到动态 举报 AI 作业

写回复 配置赞助广告取 消

确 定

用AI写文章 5 条回复 切换为时间正序 请发表友善的回复… 发表回复 打赏红包 需支付: 0.00 元 取 消 确 定 赵4老师 2019-09-30 打赏举报 回复 仅供参考:#include

#include

#include

using namespace std;

inline int COMPARE(string str1,string str2) {//相等返回0,大于返回1,小于返回-1

if (str1.size()>str2.size()) return 1; //长度长的整数大于长度小的整数

else if (str1.size()

else return str1.compare(str2); //若长度相等,则头到尾按位比较

}

string PLUS(string number1,string number2) {

int i;

int length1 = number1.size();

int length2 = number2.size();

string result="";

reverse(number1.begin(), number1.end());

reverse(number2.begin(), number2.end());

for(i = 0; i < length1 && i < length2; i++) {

char c = (char)(number1[i] + number2[i] - 48);

result = result + c;

}

while(i < length1) {

result = result + number1[i];

++i;

}

while(i < length2) {

result = result + number2[i];

++i;

}

int carry = 0;

for(i = 0; i < (int)result.size(); ++i) {

int value = result[i] - 48 + carry;

result[i] = (char)(value % 10 + 48);

carry = value / 10;

}

if(carry !=0 ) {

result = result + (char)(carry + 48);

}

for(i = result.size() - 1; i >= 0; i--) {

if(result[i] != '0') break;

}

result = result.substr(0, i + 1);

reverse(result.begin(), result.end());

if(result.length() == 0) result = "0";

return result;

}

string MULTIPLY(string number1, string number2) {

int i, j;

int *iresult;

int length1 = number1.size();

int length2 = number2.size();

string result = "";

reverse(number1.begin(), number1.end());

reverse(number2.begin(), number2.end());

iresult = (int*)malloc(sizeof(int) * (length1 + length2 + 1));

memset(iresult, 0, sizeof(int) * (length1 + length2 + 1));

for(i = 0; i < length1; i++) {

for(j = 0; j < length2; j++) {

iresult[i+j] += ((number1[i] - 48) * (number2[j] - 48));

}

}

int carry = 0;

for(i = 0; i < length1 + length2; i++) {

int value = iresult[i] + carry;

iresult[i] = value % 10;

carry = value / 10;

}

for(i = length1 + length2 - 1; i >= 0; i--) {

if(iresult[i] != 0)break;

}

for(; i >= 0; i--) {

result = result + (char)(iresult[i]+48);

}

free(iresult);

if(result == "") result = "0";

return result;

}

string factorial(string n) {

string temp = "1";

string i;

for(i = "1"; COMPARE(i, n) <= 0; i = PLUS(i, "1")) {

temp = MULTIPLY(temp, i);

}

return temp;

}

int main(void) {

cout << factorial("100") << endl;

return 0;

}

//93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000

//

自信男孩 2019-09-30 打赏举报 回复 inf的原因是除数为0了。建议楼主在计算b之前把result2和result3打出来看看是否为0。 636f6c696e 2019-09-30 打赏举报 回复 求阶乘为什么用double? 铖邑 2019-09-30 打赏举报 回复 输入多少?就会溢出了? 易隐 2019-09-30 打赏举报 回复 引用 1 楼 TxyITxs的回复:数据超出范围,溢出

其实我想要解决的办法 秘境之眼 2019-09-29 打赏举报 回复 数据超出范围,溢出 网络安全面试题目及总结 网络安全面试题目

Web安全

OWASP TOP10

1.SQL注入

介绍:​ SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中通过恶意构造请求参数,从而改变事先定义好的SQL语句行为的漏洞。可以在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意增删改查操作。

原理:在数据交互中,前端的数据传入到后台处理时,由于后端没有做严格的判断,导致其传入的“数据”拼接到SQL语句中后,被当作SQL语句的一部分执行。

种类:

测试开发笔记 测试开发笔记

第一章 测试基础 7

什么是软件测试: 7

★软件测试的目的、意义:(怎么做好软件测试) 7

3.软件生命周期: 7

第二章 测试过程 8

1.测试模型 8

H模型: 8

V模型 9

2.内部测试 10

3外部测试: 10

验收测试:(在系统测试之后) 11

回归测试: 11

4.测试过程(干什么,怎么干) 12

5.各阶段输入、输出标准以及入口、出口准则:(测试阶段过程要素) 1... TowardsDataScience 博客中文翻译 2022(二百五十八) 主题建模是一种自然语言处理(NLP)任务,它利用无监督学习方法从我们处理的一些文本数据中提取出主要主题。这里的“无监督”一词意味着没有与主题标签相关联的训练数据。相反,算法试图直接从数据本身发现潜在的模式,在这种情况下,是主题。有各种各样的算法广泛用于主题建模。在接下来的系列文章中,我打算一一介绍。在本文中,我们看看什么是潜在的狄利克雷分配(LDA)算法,它是如何工作的,以及如何使用多个 Python 包来实现它。 TowardsDataScience 博客中文翻译 2016~2018(十一) 我将使用一个非常有趣的数据集,该数据集出现在布雷特·兰茨(Brett Lantz)写的《带 R 的机器学习》(R)一书中。我的意图是通过执行一个完全监督的机器学习工作流来扩展对这个数据集的分析,这个工作流我已经设计了一段时间,以便帮助我用一种系统的、有条不紊的方法来解决任何类似的问题。如果你认为这不是什么新鲜事,那么你绝对是对的!我在这里没有提出任何新的东西,只是确保我有所有必要的工具来遵循一个完整的过程,而不会留下任何大的细节。 J2EE 高 级 软 件 工 程 师 面 试 题 集 目 录第一章:基础知识部分…………………………………3第二章:高级知识部分…………………………………27第三章:数据库部分……………………………………70第四章:程序设计部分…………………………………113第五章:面试技巧部分…………………………………132 第一章:J2EE高级软件工程师面试题集--JAVA基础部分 1、面向对象的特征有哪些方面 1.抽象:抽象...

C语言

70,020

社区成员

243,266

社区内容

发帖 与我相关 我的任务 C语言 C语言相关问题讨论 复制链接

扫一扫 分享 确定 社区描述 C语言相关问题讨论 社区管理员

加入社区

获取链接或二维码

近7日

近30日

至今

加载中

查看更多榜单

社区公告

暂无公告 试试用AI创作助手写篇文章吧

+ 用AI写文章

卡塔尔世界杯主办方签证申请系统加入“台湾”选项 – DW – 2022年6月16日
Harrods海淘攻略 哈罗德百货官网购物教程