C语言基础,数组的排列组合

题干:要求编写自定义函数 void zuhe(int a[]),实现数组中取两个元素的排列组合。要求在主函数中进行数组元素的输入。如下图,但只能固定输入10个元素,如何才能任意输入元素个数?

第1个回答  2018-04-30
答:因为解决组合问题要用到阶乘,计算机系统不可能直接计算较大数的阶乘。如:本机: ULLONG_MAX = 18446744073709551615 为20位数,最大可计算 20! = 2432902008176640000 为19位数,以上是64位计算机、windows7(32位)、gcc10编译器的情况,所以不可能解决输入任意多个元素的问题。必须根据自己的系统来决定最多可以求多少元素的组合问题。追问

不需要那么大,比如说我想输入8个元素,就只能再写个a[8]?

追答

可以定义:
int n;
a[n];
n=8;

第2个回答  2018-04-30
n=0
while 1:
{
scanf("%d",&a[n]);
if (a[n]==9527)
{
return a;
}

}

注:在循环时设置一个数,输入这个数就退出本回答被提问者和网友采纳
相似回答