c语言写抽球游戏 问一下各位怎么写

  1. img

img

取的顺序算吗。。。
如果不关心取的顺序,就是取1 2 3 和取 2 1 3是一种取法的话,代码如下:

#include <stdio.h>
int main( )
{
    int i,j,k,a[5];
    int cnt=0; //取法数量
    for(i=1;i<=5;i++)
        a[i]= i;
    for (i=0;i<5;i++)
    {
        for(j=i+1;j<5;j++)
        {
            for (k=j+1;k<5;k++)
            {
                cnt++;
            }
        }
    }
    printf("取法数:%d\n",cnt);
    return 0;
}

如果关心取的顺序,则代码如下:

#include <stdio.h>
int main( )
{
    int i,j,k,a[5];
    int cnt=0; //取法数量
    for(i=1;i<=5;i++)
        a[i]= i;
    for (i=0;i<5;i++)
    {
        for(j=0;j<5;j++)
        {
            for (k=0;k<5;k++)
            {
                if(i != j && j!= k && i != k)
                    cnt++;
            }
        }
    }
    printf("取法数:%d\n",cnt);
    return 0;
}

回答如下:简单的数学问题,思路很清晰,5个取3个,一共有5*4/2=10种,图片上给了思路,用for循环可简单实现
程序如下:

#include <stdio.h>
int main( )
{
    int i,j,k,num=0;
    for(i=1;i<=5;i++)
    {
        for(j=1;j<=5;j++)
        {
            for(k=1;k<=5;k++)
            {
                if(i!=j && i!=k && j!=k)
                {
                    num+=1;
                }
            }
        }    
    }
    num/=6;
    printf("%d\n",num);
    return 0;
}

程序简单实现,每次取一个球,三次都不相同,但涉及到重复问题(顺序不相同但结果相同时,重复了,6种),仅供参考