标题: 计算排列和组合源代码[修改bug&简化] [打印本页]

作者: 51黑tt    时间: 2016-3-5 15:45
标题: 计算排列和组合源代码[修改bug&简化]
#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;-
}-


作者: 51黑tt    时间: 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;
}




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1