本文目录一览:
- 1、亲,年会随机礼物互换,如何实现1-20个数字随机配对,看你是电脑高手跪求解答
- 2、在C语言中如何将两个数进行互换
- 3、C语言--8人互送礼物有多少种送法?
- 4、想用C语言完成一个程序作为妈妈的生日礼物,想知道我应该怎么进行?
亲,年会随机礼物互换,如何实现1-20个数字随机配对,看你是电脑高手跪求解答
就是个随机洗牌的过程,假设编号原始位置顺序是1~20顺序排列,你可以用随机数每次交换任意两个位置的编号,这样交换n次后,可以认为顺序已经是随机的,最后指定相邻两个位置配对。
#includestdio.h
#includestdlib.h
#includetime.h
#define N 20
#define M 500
void main() { int a[N],i,j,k,m,n;
srand((unsigned int)time(NULL)); //设置随机数种子,保证每次运行不出现相同结果
for ( i=0;iN;i++ ) a[i]=i+1; //数组按顺序赋值编号
for ( i=0;iM;i++ ) { //洗牌M次
m=rand()%N; n=m; while ( n==m ) n=rand()%N; //保证交换的位置不重合
k=a[m]; a[m]=a[n]; a[n]=k; //交换编号
}
for ( i=0;iN;i+=2 ) printf("%d-%d\n",a[i],a[i+1]); //输出结果
}
在C语言中如何将两个数进行互换
将两个数进行互换的方法有两种形式:
1、借助中间变量完成,此方法直观,易理解,使用最多
2、不需要中间变量,通过变量身的运算完成交换。
参考代码:
方法1:
int a=2,b=3,t;
t=a; //先将a存储到临时变量t中
a=b; //将b存储到a中
b=t; //将临时变量中的原a值存储到b中
printf("a=%d b=%d\n", a,b );
方法2:
int a=2,b=3,t;
a += b ; //把两数之和存到a中
b= a-b ; //用两数和减去b可得原a,存储到b中
a= a-b ; //因为b现在是原a值,所以,用两数和减去b(原a)可得 原b,存储到a中
此方法,还可以用异或运算来实现,原理相同。
C语言--8人互送礼物有多少种送法?
本来就是用数学方法的,叫错排公式,是一个递推的公式
基本形式:d[1]=0; d[2]=1
递归式:d[n]= (n-1)*( d[n-1] + d[n-2])
想用C语言完成一个程序作为妈妈的生日礼物,想知道我应该怎么进行?
学完c后就去学win32 api吧,因为你要安装完后到时间才执行,最好写个hook,这样比较简单点,定点执行程序还有很多方法的,修改注册表,或者windows里有个任务计划,自己搞就可以了,api学完就差不多可以写出来了,要播放音乐的话记得api里有函数吧,没用过,可以用ffmpeg库,网上有