2 设计3个变量!a, b, c. 分别取值为1-6.int a= new Random(6)+1.重复b, c.
3 把a, b, c放入数组中!
4 循环遍历数组把三个元素相加 输出这把总和是
5 判断总和能否被2整除,如果能,输出是双数,不能输出是单数!戚指
6判断大小 大于等于4&&小樱仔宽于等于10 显示开小
大于等于11&&小于等于17显示开大
7 遍历数组 判断三个元素是否相等 相等显示开豹子。。
手机脊亮打字!!有什么问题在问吧
编写程序,实现如下表所示的5-魔方阵。
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
5-魔方阵
问题分析
所谓“n-魔方阵”,指的是使用1〜n2共n2个自然数排列猜模成一个n×n的方阵,其中n为奇数;该方阵的每行、每列及对角线元素之和都相等,并为一个只与n有关的常数,该常数为n×(n2+1)/2。
例如5-魔方阵,其第一行、第一列及主对角线上各元素之和如下吵族:
第一行元素之和:17+24+1+8+15=65
第一列元素之和:17+23+4+10+11=65
主对角线上元素之和:17+5+13+21+9=65
而 n×(n2+1)/2=5×(52+1)/2=65 可以验证,5-魔方阵中其余各行、各列及副对角线上的元素之和也都为65。
假定阵列的行列下标都从0开始,则魔方阵的生成方法为:在第0行中间置1,对从2开始的其余n2-1个数依次按下列规则存放:
(1) 假定当前数的下标为(i,j),则下一个数的放置位置为当前位置的右上方,穗碰缓即下标为(i-1,j+1)的位置。
(2) 如果当前数在第0行,即i-1小于0,则将下一个数放在最后一行的下一列上,即下标为(n-1,j+1)的位置。
(3) 如果当前数在最后一列上,即j+1大于n-1,则将下一个数放在上一行的第一列上,即下标为(i-1,0)的位置。
(4) 如果当前数是n的倍数,则将下一个数直接放在当前位置的正下方,即下标为(i+1,j)的位置。
算法设计
在设计算法时釆用了下面一些方法:定义array()函数,array()函数的根据输入的n值,生成并显示一个魔方阵,当发现n不是奇数时,就加1使之成为奇数。
使用动态内存分配与释放函数malloc()与free(),在程序执行过程中动态分配与释放内存,这样做的好处是使代码具有通用性,同时提高内存的使用率。
在分配内存时还要注意,由于一个整型数要占用两个内存,因此,如果魔方阵中要存放的数有max个,则分配内存时要分配2*max个单元,从而有malloc(max+max)。在malloc()函数中使用max+max而不是2*max是考虑了程序运行的性能。
显然应该使用二维数组来表示魔方阵,但虽然数组是二维形式的,而由于内存是一维线性的,因此在存取数组元素时,要将双下标转换为单个索引编号。在程序中直接定义了指针变量来指向数组空间,即使用malloc()函数分配的内存。
你这个问题要分两部分~!一。算法部分,你让用户猜数字,肯定之前有提示是吧,根据什么数猜什么数或字母,这就是对结果的反运算,给用户的提示数字其实就是中间运算过程使用的临时数字。
二。交互部分。如果用纯c++写无非就是cin cout之类。若是弯游旁用win32/64或linux下的可视化c++那就是写用户可见的界面,用鼠标或键盘 *** 作。
比如:用win32下的vc++
若使用MFC你可以创建一个对话框应用程序,在里面放几个按钮或其它的控件用来给用户进示,在加一个edit box,用于给用户输出他猜到的数,然后有个提交,提交事件里就调用你之前算法算好埋橡的结果数或字母进行比对就行了。结果数是有出题给用户的时磨祥候已经算好了的。
若不喜欢MFC,使用win32API也可以,你可以先去网上找一个win32下窗口程序的基本消息环,复制到winmain里,然后在keydown或char之类的消息里处理用户输入交互,界面部分你可以使用资源编辑器新建一个,自己拖几个按钮控件之类的,记下ID,因为不使用MFC, *** 作控件就要靠ID了。
其实这些没什么难的,只要你算法出来了,再了解一下MFC就能搞定了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)