随机生成数字放入数组(难度系数:1颗星)
来源:互联网 发布:js对象转化为字符串 编辑:程序博客网 时间:2024/06/07 14:56
随机生成1-6的数字放入到大小为56的数组中,保证数组最终每个数字出现的次数均为偶数。
参考代码1:
#include <stdio.h>#include <time.h>#define TOTALNUM 56int arr[TOTALNUM];int main(){ int i; srand((unsigned int)time(NULL)); for (i = 0; i < TOTALNUM / 2; i++) arr[i] = arr[i + TOTALNUM / 2] = rand() % 6 + 1; for (i = 0; i < TOTALNUM; i++) { printf("%d ", arr[i]); if ((i + 1) % (TOTALNUM / 4) == 0) printf("\n"); } return 0;}
运行结果:
参考代码2:
#include <stdio.h>#include <stdlib.h>#include <time.h>#define TOTALNUM 56int arr[TOTALNUM];void SwapArray(){ int i, nIndex1, nIndex2, nTemp; for (i = 0; i < 100; i++) { nIndex1 = rand() % TOTALNUM; nIndex2 = rand() % TOTALNUM; if (nIndex1 != nIndex2) { nTemp = arr[nIndex1]; arr[nIndex1] = arr[nIndex2]; arr[nIndex2] = nTemp; } }}int main(){ int i; srand((unsigned int)time(NULL)); for (i = 0; i < TOTALNUM / 2; i++) arr[i] = arr[i + TOTALNUM / 2] = rand() % 6 + 1; SwapArray();//随机进行100次交换,但并不是必须的 for (i = 0; i < TOTALNUM; i++) { printf("%d ", arr[i]); if ((i + 1) % (TOTALNUM / 4) == 0) printf("\n"); } return 0;}
输出结果:
PS: 虽然在产生完成之后可以再加入SwapArray()函数进行一次随机交换操作(这是参考代码2和参考代码1的区别),但我认为这个并不是必须的,因为即使不进行这个操作,虽然数组的第1个数和第29个数会相同,但是我们并不能确定它是什么数字,依然满足随机性的定义。
3 0
- 随机生成数字放入数组(难度系数:1颗星)
- 拼音读数字(难度系数:1颗星)
- 数组逆序(难度系数:半颗星)
- 输出菱形图案(难度系数:1颗星)
- 计算器(难度系数:3颗星)
- NKOJ 2770 难度系数(最小生成树)
- Android数字游戏之数独(自动随机生成不同难度的数独)
- 输出图案(三)-----输出正弦曲线:(难度系数:1颗星)
- 输出图案(五)---输出心形图案:(难度系数:1颗星)
- 模拟计算机计算源码、反码、补码(难度系数:1颗星)
- 加减乘除24点(难度系数:2颗星)
- 迭代法计算平方根(难度系数:2颗星)
- 数列的逆序数对(难度系数:2颗星)
- 输出螺旋数组(难度:1颗星)
- [C#]将1~100随机不重复的放入数组
- leetcode Remove Element 1.3 难度系数1
- leetcode Plus One 1.5 难度系数1
- leetcode Same Tree 1.7 难度系数1
- 用Anaconda安装TensorFlow
- 【Oracle】dbms_output
- 用模重复平方法求b^n mod m
- php冒泡排序和快速排序
- JAVA代码注释规范
- 随机生成数字放入数组(难度系数:1颗星)
- 简单博弈
- mac 安装 redis
- 糖果问题的一种解法
- CCF NOI1048 检测矩阵
- 用提高效率的暴力法求3000以内的素数
- 将tslib-1.4移植到Mini2440开发板
- 求一个数组中的和为任意一个数的两个元素
- 换零钱