gpt4 book ai didi

有人可以解释为什么我的代码给出错误 "floating point exception"

转载 作者:行者123 更新时间:2023-11-30 19:43:20 25 4
gpt4 key购买 nike

我试图解决一个问题,但我在调试时遇到了一些错误,但找不到有人可以找到它。

 #include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>

long long int fact(int n)
{
long long int s=1,i;

if(n==0||n==1)
return(1);
else {
for(i=1;i<=n;i++) {
s=s*i;
}

// printf("%lld ",s);
return(s);
}
}

int comb(int m,int n)
{
float data;
data=fact(m+n)/(fact(m)*fact(n));

// printf("%d %d data:%d ",m,n,data);
return(data);
}

int main() {
float nu[100];
int t,i,n,a,b,w,j,k,l,c[100];

scanf("%d",&t);
for(j=0;j<t;j++) {
scanf("%d",&n);

for(i=0;i<=n;i++) {
a=i,b=n-i;
w=comb(a,b);
nu[i]=w;
c[i]=i;
}

for(k=0 ;k< i;k++) {
for(l=0;l<i-1;l++) {
if(nu[l]>nu[l+1]) {
int p,q;

p=nu[l];
nu[l]=nu[l+1];
nu[l+1]=p;
q=c[l];
c[l]=c[l+1];
c[l+1]=q;
}

if(nu[l]==nu[l+1]) {
int q;

if(c[l]>c[l+1]) {
q=c[l];
c[l]=c[l+1];
c[l+1]=q;
}
}
}
}

for(l=0 ; l < i ;l++) {
//printf("%d",nu[i]);
printf("%d ",c[l]);
printf("%d\n",n-c[l]);
}
}

return 0;
}

最佳答案

comb() 返回“int”类型,但你“return(data);”,这是“float”类型:

int comb(int m,int n)
{
float data;
data=fact(m+n)/(fact(m)*fact(n));
// printf("%d %d data:%d ",m,n,data);
return(data);
}

关于有人可以解释为什么我的代码给出错误 "floating point exception",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29714365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com