小编SRI*_*SHA的帖子

C程序,用于计算从n个不同对象中选择k个对象的方法数.'k'和'n'都是整数

我编写了一个C程序来计算使用函数从n个不同对象中选择k个对象的方法的数量.

    #include<stdio.h>
    long f(int a)
    {
     if(a==1||a==0)return(0);
     else return(a*f(a-1));
    }

    int combination(int N,int K)
    {
     long int NF,KF,NMKF;
     NF=f(N);
     KF=f(K);
     NMKF=f(N-K);
     return(NF/(KF*NMKF));

    }
    int main()
    {
     int n,k;
     scanf("%d%d",&n,&k);
     combination(n,k);
    }
Run Code Online (Sandbox Code Playgroud)

但编译器显示以下错误消息

floating point exception (core dumped)
Run Code Online (Sandbox Code Playgroud)

怎么避免呢?

c algorithm combinations coredump function

4
推荐指数
1
解决办法
1122
查看次数

C程序在一系列数字中找到缺失的整数

给出一系列n-1个不同的正整数,所有这些整数都小于或等于整数'n'.你必须找到范围[1,2,...,n]中缺少的整数.在不使用数组的情况下解决问题.

输入格式:包含整数'n'的一行,其中2 <= n <= 10,000第一行后跟一系列'n-1'个不同的正整数.请注意,序列可能没有任何特定顺序.

我通过使用数组获得了代码

#include<stdio.h>
int main()
{
 int i,j,n[9999],m,t;
 scanf("%d",&m);
 for(i=1;i<m;i++)
  {
   scanf("%d",&n[i]);
  }
 for(i=1;i<m;i++)
  {
   for(j=1;j<i;j++)
    {
      if(n[j]>n[j+1])
       {
         t=n[j];
         n[j]=n[j+1];
         n[j+1]=t;
        }
    }
   }
   for(i=2;i<m;i++)
    {
     if(n[i-1]!=n[i]-1)
       {
          printf("%d",n[i]-1);
          break;
       }
  }
 return(0);
 }
Run Code Online (Sandbox Code Playgroud)

如何在不使用数组的情况下执行相同操作?

c arrays sequence

3
推荐指数
2
解决办法
1万
查看次数

标签 统计

c ×2

algorithm ×1

arrays ×1

combinations ×1

coredump ×1

function ×1

sequence ×1