C语言实现的阶乘,排列和组合实例_C 语言

本文实例讲述了C语言实现的阶乘,排列和组合。分享给大家供大家参考。具体如下:

#include<stdio.h>
int Factorial(int n)
{
  int i=0;
  int sum=1;
  int array[]={0};
  for(i=n;i>=1;i--)
  {
    sum=sum*i;
  }
  return sum;
}
int Arrangement(int n,int m)
{
  int result=0;
  if(m>n)
  {
    printf("您的输入有错,上边的数不能比下边大! OK?");
    return 0;
  }
  if(m<n)
  {
    result=Factorial(n)/Factorial(n-m);
    return result;
  }
}
int Combination(int n,int m)
{
  int result=0;
  if(m>n)
  {
    printf("您的输入有错,上边的数不能比下边大! OK?");
    return 0;
  }
  if(m<n)
  {
    int temp=0;
    temp=Factorial(n-m)*Factorial(m);
    result=Factorial(n)/temp;
    return result;
  }
}
main()
{
  int res=0;
  res=Arrangement(5,2);
  printf("%d",res);
  system("pause");
}

希望本文所述对大家的C语言程序设计有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索c语言
, 阶乘
, 组合
排列
排列组合阶乘、阶乘排列组合公式计算、排列组合阶乘公式、排列组合阶乘的公式、c语言排列组合算法,以便于您获取更多的相关知识。

时间: 2024-09-17 04:53:29

C语言实现的阶乘,排列和组合实例_C 语言的相关文章

C语言的冒泡排序和快速排序算法使用实例_C 语言

冒泡排序法 题目描述:     用一维数组存储学号和成绩,然后,按成绩排序输出. 输入:     输入第一行包括一个整数N(1<=N<=100),代表学生的个数.     接下来的N行每行包括两个整数p和q,分别代表每个学生的学号和成绩. 输出:     按照学生的成绩从小到大进行排序,并将排序后的学生信息打印出来.     如果学生的成绩相同,则按照学号的大小进行从小到大排序. 样例输入:     3     1 90     2 87     3 92 样例输出:     2 87    

C语言内嵌汇编API内存搜索引擎实例_C 语言

本文实例讲述了C语言内嵌汇编API内存搜索引擎的方法,分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: // apisearchEngine.cpp : Defines the entry point for the console application.  //    #include "stdafx.h"  #include <Windows.h>     DWORD __stdcall GetStrLengthA(char* szName)  {   

讲解C语言编程中指针赋值的入门实例_C 语言

从const int i 说起 你知道我们声明一个变量时象这样int i :这个i是可能在它处重新变赋值的.如下: int i = 0; /* . . . */ i = 20; /*这里重新赋值了*/ 不过有一天我的程序可能需要这样一个变量(暂且称它变量),在声明时就赋一个初始值.之后我的程序在其它任何处都不会再去重新对它赋值.那我又应该怎么办呢?用const . /* . . . */ const int ic =20; /* . . . */ ic = 40; /*这样是不可以的,编译时是无

C++归并算法实例_C 语言

本文实例讲述了C++归并算法.分享给大家供大家参考.具体如下: /* 归并算法:把两个或两个以上的线性表合并在一起,形成一个新的线性表 函数模版的基本使用 程序意图:将两个相同类型的线性表元素排好序,然后将他们组合成一个排好的线性表 */ #include <iostream> using namespace std; const int n = 5; //5个元素 //输出数据元素 template <class T1> void OutPut(T1 out[(2*n)]) {

C语言 字符串指针详解及示例代码_C 语言

C语言中没有特定的字符串类型,我们通常是将字符串放在一个字符数组中,这在<C语言字符数组和字符串>中已经进行了详细讲解,这里不妨再来演示一下: #include <stdio.h> int main(){ char str[] = "http://c.biancheng.net"; int len = strlen(str), i; //直接输出字符串 printf("%s\n", str); //每次输出一个字符 for(i=0; i<

C语言 数组指针详解及示例代码_C 语言

数组(Array)是一系列具有相同类型的数据的集合,每一份数据叫做一个数组元素(Element).数组中的所有元素在内存中是连续排列的,整个数组占用的是一块内存.以int arr[] = { 99, 15, 100, 888, 252 };为例,该数组在内存中的分布如下图所示: 定义数组时,要给出数组名和数组长度,数组名可以认为是一个指针,它指向数组的第 0 个元素.在C语言中,我们将第 0 个元素的地址称为数组的首地址.以上面的数组为例,下图是 arr 的指向: 下面的例子演示了如何以指针的方

C语言实现的程序员老黄历实例_C 语言

本文实例讲述了C语言实现的程序员老黄历.分享给大家供大家参考.具体如下: 以前看到过一个jquery程序员老黄历页面,觉得挺有创意的,自己闲着用C语言也写了一个,基本就是随机数的生成,没什么难度,大家随便看看,高手请绕过此篇,控制台程序没什么美观可言,已经尽量弄得好看点了. #include <stdio.h> #include <time.h> int random(int dayseed,int indexseed) //根据当前时间"天 "产生伪随机数.

C++实现汉诺塔算法经典实例_C 语言

本文所述为汉诺塔算法的C++代码的经典实现方法. 汉诺塔问题描述:3个柱为a.b.c,圆盘最初在a柱,借助b柱移到c柱.需要你指定圆盘数. 具体实现代码如下: #include <iostream> using namespace std; int times = 0; //全局变量,搬动次数 //第n个圆盘从x柱搬到z柱 void move(int n, char x, char z) { cout << "第" << ++times <&l

详解C语言中的#define宏定义命令用法_C 语言

#define命令#define定义了一个标识符及一个串.在源程序中每次遇到该标识符时,均以定义的串代换它.ANSI标准将标识符定义为宏名,将替换过程称为宏替换.命令的一般形式为: #define identifier string 注意: 1.该语句没有分号.在标识符和串之间可以有任意个空格,串一旦开始,仅由一新行结束. 2.宏名定义后,即可成为其它宏名定义中的一部分. 3.宏替换仅仅是以文本串代替宏标识符,前提是宏标识符必须独立的识别出来,否则不进行替换.例如: #define XYZ th