首页 > 编程知识 正文

c语言分成队员,c语言小组分工

时间:2024-03-07 18:23:45 阅读:332346 作者:VSIZ

本文目录一览:

c语言 现有n个队员,分成m组,要求每组之间人数差最少

#include stdio.h

int main()

{

    int m,n;

    int i, a,b;

    scanf("%d%d", n, m);

    if(n%m==0)

    {

        a=n/m;

        printf("每组%d人n", a);

    }

    else

    {

        a=n%m;

        b=n/m+1;

        printf("%d人%d组, 加 %d人%d组n", b,a,b-1,m-a);

    }

    

    return 0;

}

C语言程序:有两只队伍比赛羽毛球,各派4名队员

找到了!

#includestdio.h

int main()

{

    char a,b,c,d; //对应4个人a b c d

    for(a='w';a='z';a++) //对手可能是wxyz中的任意一人,所以4个数都要检查

        for(b='w';b='z';b++)//同上

            for(c='w';c='z';c++)//同上

for( d='w';d='z';d++ )

                if ( a!=b  b!=c  c!=d  d!=a  b!=d  a!=c ) //两个人不能有相同的对手

                    if(a!='w'b!='w'b!='x'  c!='z' ) //A不用W比赛,B不与W,X比赛,C不与Z比赛

                        printf("A--%c B--%c C--%c D--%cn",a,b,c,d); //满足条件,输出对手

    return 0;

}

C语言 分组(数字分组)

void Test(int n)

{

for (int i = 1; i = 50; ++i)

{

cout i ;

if (i % n == 0)

cout endl ;

else

cout ", " ;

}

}

m个人分成n组,要求每组最少一个人,如何用C语言编程求所有可能的解?

数学上可以用排列组合的方法,隔板法来求解,前提是人之间没有差别,如果人数大于分组数,那么就相当于将n-1个隔板插进m-1个人之间,解的个数用排列组合的C运算来求,比如说三个人分两组,那么解的个数为2X1/1=2,如果五个人分三组,那么解的个数为5X4X3/(3X2X1)=10;

如果用程序实现,可以采用递归调用加指针,我的算法有点麻烦,可能还有更简单的:

#include "stdafx.h"

int m,n;

int *a;

int *ini;

void main()

{

  void allocate(int q,int r);

  while(true)

  {

      scanf("%d",m);

      scanf("%d",n);

      if(m=n)

      {

          break;

      }

      else

      {

      printf("请重新输入n");

      }

  }

  a = (int*)malloc(n*sizeof(int));

  ini=a;

  for(int i=0;in;i++)

  {

      *(a++)=1;

  }

  a=ini;

  allocate(0,n);

}

void allocate(int q,int r)

{

  int sum=0;

  int next;

  if(q=r)

  {

      q=r-1;

      a=ini;

      for(int j=0;jr;j++)

      {

          sum=sum+*a++;

      }

      if(sum==m)

      {

          a=ini;

          for(int k=0;kr;k++)

          {

              if(k!=(r-1))

              {

                  printf("%d ",*a++);

              }

              else

              {

                  printf("%dn",*a++);

              }

          }

      }

  return;

  }

  else

  {

      for(int i=0;i=(m-n);i++)

      {

          a=ini;

          a[q]=i+1;

          next=q+1;

          allocate(next,r);

      }

  }

  return;

}

因为用了malloc,所以头文件中需要加入malloc.h,程序在VS2010下运行。

结果截图:

三人两组

五人三组

七人三组

这个是楼主要的答案吗?

c语言 m人分成n组 每组至少一人 有多少种解 求现成程序

#includestdio.h

long long s[1000][1000];

long long divide(int n,int m)//n人分成m组

{

long long i,j;

for(i=1;i=n;i++)

{

s[i][1]=1,s[i][i]=1;

for(j=2;ji;j++)

s[i][j]=s[i - 1][j - 1] + j * s[i - 1][j];

}

return s[n][m];

int main()

{

int m,n;

scanf("%d%d",m,n);

printf("%lld",divide(m,n));

return 0;

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。