找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1647|回复: 1
打印 上一主题 下一主题
收起左侧

计算排列和组合源代码[修改bug&简化]

[复制链接]
跳转到指定楼层
楼主
ID:107189 发表于 2016-3-5 15:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <stdio.h>-
void print_date (int a,int b) {-
   printf("n = %d , m = %d",a,b);-
}-
-
int pailie (int a,int b) {-
    int tmp = 1;-
    for (b--;0!=(b+1);b--) {-
         tmp*=(a-b);-
    }-
    return tmp;-
}-
-
-
int zuhe (int a,int b) {-
    int c,d=1,e=1;-
    c=b;-
    for (--c;(c+1)!=0;--c) {-
       d*=(a-c);-
    }-
    c=b;-
    for (--c;(c+1)!=0;--c) {-
       e*=(b-c);-
    }-
  return d/e;-
}-
-
int main (void) {-
   int x,y,i,tmp,choose;-
   printf("input 2 number\n");-
   printf("the one=");-
   scanf("%d",&x);-
   printf("the two=");-
   scanf("%d",&y);-
   if (y>x){-
     i=x;-
     x=y;-
     y=i;-
   }-
     do {-
       printf("\n m A n input 1 \t  m C n input 2 :");-
       scanf("%d",&choose);-
     } while (choose>2);-
-
   print_date (x,y);-
-
   switch (choose) {-
     case 1:-
       tmp = pailie (x,y);-
       printf("\n n A m =%d\n",tmp);-
       break;-
     case 2:-
       tmp = zuhe (x,y);-
       printf("\n n C m =%d\n",tmp);-
       break;-
   }-
  scanf("%d",&i);-
return 0;-
}-

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:107189 发表于 2016-3-5 15:45 | 只看该作者
#include <stdio.h>
void print_date (const int a,const int b) {
   printf("n = %d , m = %d",a,b);
}

int pailie (int a,int b) {
    int tmp = 1;
    for (b-=1;0!=(b+1);b--) {
         tmp*=(a-b);
    }
    return tmp;
}


int zuhe (int a,int b) {
    int tmp,c,d,e;
    c=b;
    for (c-=1;(c+1)!=0;c--) {
       d*=(a-c);
    }
    c=b;
    for (c-=1;(c+1)!=0;c--) {
       e*=(b-c);
    }
    tmp = d/e;
  return tmp;
}

int main (void) {
   int x,y,i,tmp,choose;
   printf("输入两个数字\n");
   printf("第一个数字=");
   scanf("%d",&x);
   printf("第二个数字=");
   scanf("%d",&y);
   if (y>x){
     i=x;
     x=y;
     y=i;
   }
     do {
       printf("\n计算m A n输入1,计算m C n输入2 :");
       scanf("%d",&choose);
     } while (choose>2);

   print_date (x,y);

   switch (choose) {
     case 1:
       tmp = pailie (x,y);
       printf("\n n A m =%d\n",tmp);
       break;
     case 2:
       tmp = zuhe (x,y);
       printf("\n n C m =%d\n",tmp);
       break;
   }
  scanf("%d",&i);
return 0;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表