从1到20个数中任意5个1对2尾的组合有多少注的c语言编程
答案:1 悬赏:70 手机版
解决时间 2021-04-16 13:24
- 提问者网友:像風在裏
- 2021-04-16 05:47
从1到20个数中任意5个1对2尾的组合有多少注的c语言编程
最佳答案
- 五星知识达人网友:第四晚心情
- 2021-04-16 06:31
#include
#include
#include
#define ALLNUM 35
#define SELNUM 28
int main()
{
FILE * fp;
fp = fopen("comb.txt","w");
srand((unsigned)time(NULL));//随机数种子
int num[ALLNUM], i;
int i1,i2,i3,i4,i5;
for(i = 0; i < ALLNUM; i++)
num[i] = i + 1;
for(i = 0; i < 7; i ++)//随机数,如果是①的话此循环可去掉
{
//为节省效率此处使用末位回填,如需要保持原有顺序需改为后段整体前移
num[rand()%(ALLNUM-i)] = num[ALLNUM-i-1];
}
//注意组合不是排列,不可有重复数字,选第n个数字的时候要从第n-1个数字的后面开始
//如果是①的话SELNUM要换成ALLNUM
for(i1 = 0, i = 0; i1 < SELNUM; i1++)
for(i2 = i1+1; i2 < SELNUM; i2++)
for(i3 = i2+1; i3 < SELNUM; i3++)
for(i4 = i3+1; i4 < SELNUM; i4++)
for(i5 = i4+1; i5 < SELNUM; i5++)
{
i ++;
//由于屏幕输出太耗时间,这句先放在注释里面,验证的时候到同目录的comb.txt查看结果
//printf("%d %d %d %d %d\n",num[i1],num[i2],num[i3],num[i4],num[i5]);
fprintf(fp,"%d %d %d %d %d\n",num[i1],num[i2],num[i3],num[i4],num[i5]);
}
printf("一共%d种组合\n",i);//①的结果是324632,②的结果是98280
fclose(fp);
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯