c程编程 快来帮帮小弟

来源:百度知道 编辑:UC知道 时间:2024/07/06 21:50:18
如,若k为8时,正确的组合数是15;若k为2时,正确的组合数是1;或k为3时,正确的组合数是3 。

int fun(int k)
{
}
void main()
{int x,n;
scanf("%d",&x);
n=fun(x);
printf("n=%d\n",n);
}

对了还有追加
编写函数int fun(int k),功能:从3个红球, 5个白球,6个黑球中任意取出k(2≤k≤13)个球作为一组进行组合。在每组中,可以没有黑球,但必须要有红球和白球。不同组合的数目作为函数值返回。例如,若k为8时,正确的组合数是15;若k为2时,正确的组合数是1;或k为3时,正确的组合数是3 。
这是原题

你的题目很不明白啊,组合数怎么得来的?从那三组数中寻找规律么?
int fun(int k)
{ int red,white,black,num=0;
for(red=1;red<=3;red++)
for(white=1;white<=5;white++)
for(black=0;black<=6;black++)
if(red+white+black==k)num++;
return num;
}

int fun(int k)
{
switch (k)
case 8:return 30;break;
case 2:return 1;break;
case 3:return 3;break;
default;

}

一楼的那个函数写得很正确。我帮他写成了一个完整的程序。
#include "stdio.h"
int fun(int k)
{ int red,white,black,num=0;
for(red=1;red<=3;red++)
for(white=1;white<=5;white++)
for(black=0;black<=6;black++)
if(red+white+black==k)num++;
return num; }
void main()
{ int k;
scanf("%d",&k);
printf("%d",fun(k));
}

一楼是对的;
下面是我改良的(运行时间减少,当然小数据是感觉不出来)
int fun(int k)
{ int red,white,black,num=0;
for(red=1;red<=3;red++)
for(white=1;white&l