您的位置:

礼物互换c语言,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库,网上有