Lua数组,打印九九乘法口诀
Lua数组,打印九九乘法口诀--lua数组--九九乘法口诀表for i=1,9 do for j=1,i do io.write(j,"*",i,"=",i*j," ") end print()end-- 初始化数组--[[array = {}for i=1,3 do array[i] = {} for j=1,3 do array[i][j] = i*j endend-- 访问数组for i=1,3 do for j=1,3 do print(array[i][j]) endend--]]
值传递,引用传递,指针传递
值传递,引用传递,指针传递 值传递,引用传递,指针传递:
1、值传递:
void f(int x)
传值传的是原来实参的一份拷贝,对形参进行操作不会改变实参的值。函数返回后,函数栈帧销毁,这份拷贝也会自动被回收。
2、引用传递:
void f(int& x)
传引用什么也没创建,只是给实参起个别名,就像同学之间取外号一样,张三是一个同学,别人给他取名就二狗,那么张三,二狗就是同一个人。在这也是一样的,对引用进行操作就等于对实参的操作,对引用的操作会影响原来的实参。
3、指针传递:
void f(int* &x)
如果传入的指针型变量,并且在函数体内要对传入的指针进行改变,则可以按照上述编写参数。
传指针就是为实参传建一个指针变量,指针变量里面存的就是实参的地址,对形参进行操作也会通过指针的间接访问对实参进行修改,所以对形参的操作会影响原来的值。
如果觉得本文对你有所帮助的话,不 ...
可变分区内存动态分配模拟
可变分区内存动态分配模拟可变分区是指在进程装入内存时,把可用的内存空间“切出”一个连续的区域分配给进程,以适应进程大小的需要。整个内存分区的大小和分区的个数不是固定不变的,而是根据装入进程的大小动态划分。
可变分区中的数据结构:空闲分区表和空闲分区链。 空闲分区表为每个尚未分配出去的分区设置一个表项,每个表项包括分区的序号,分区大小,分区起始地址。 空闲分区链在每个分区中设置用于控制分区分配的信息以及用于链接各个分区的指针,将内存中的空闲分区链成一个链表。
可变分区中的算法 1)首次适应算法(First Fit)
该算法要求空闲分区以地址递增的次序排序,分配时从表头开始顺序查找,直到找到一个能够满足进程大小的空闲分区为止,然后从进程中切出一块内存空间分配给进程,余下的空间仍然留在内存中。优点:优先使用低地址的空闲空间,高地址部分很少利用,保证了高地址的留有较大的空闲分区缺点:低地址部分不断“切割”,使留下许多难以利用的空闲分区,而每次又都从低地址开始,这就会影响查找的速度。
2)下次适应算法(Next Fit)该算法从首次适应算法演变过来,为了避免低地址小空闲 ...
可变分区内存动态分配模拟
如何从windows复制到linux上
第一种方法下载软件:
sudo apt-get autoremove open-vm-toolssudo apt-get install open-vm-tools-desktop
重启linux。一种方法我不适用,不知道大家的可不可以,试一试。
第二种方法步骤有点繁琐,但是最后的确成功有效下面点击 是 。linux下载好之后会弹出一个VmwareTools ,点开,你会发现一个tar.gz的一个压缩包。在主目录新建一个myfile文件夹,将这个.tar.gz复制到myfile文件夹中,打开终端,进入myfile路径下,解压压缩包。
tar -xzvf VMwareTools-10.1.15-6627299.tar.gz
这里可能安装包不一样,所以相应的数字也不一样,注意文件名要与你的压缩包要相同解压后myfile文件夹中就会多出一个vmware-to-ols-distrib文件夹,进入该文件夹,在空白处右键,在终端打开,而不是新打开一个终端运行下面指令:
sudo ./vmware-install.pl
这时可能提示要你选择安装目录,你就回车 ...
磁道调度算法(满满的干货)
磁道调度算法 四种磁盘调度算法FCFS,SSTF,SCAN,CSCAN的基本思想在这就不多说了。 下面直接附上代码实现过程:
/*磁盘调度算法: 先来先服务:按进程的先后顺序进行调度 最短寻道:对磁道距离最短的磁道进行访问 扫描算法:沿着一个方向,由里向外扫描磁道,到最外层磁道,然后变换为由外向里扫描磁道 循环扫描算法:只能沿着一个方向,有里向外扫描磁道,到最外层磁道时转换为最里层的磁道 测试数据: 9个磁道:55 58 39 18 90 160 150 38 184 9个磁道:67 92 79 64 130 150 45 28 12 8个磁道:90 87 101 76 12 64 73 23 8个磁道:87 90 76 101 12 64 73 120*/#include<iostream>#include<cmath>using namespace std;typedef struct Disk_Schedule{ int NextTrack; int MovedTrack;}Disk;Disk *Track;float ...
Anagrams问题
试题 算法训练 Anagrams问题资源限制时间限制:1.0s 内存限制:512.0MB问题描述 Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的。例如,“Unclear”和“Nuclear”、“Rimon”和“MinOR”都是Anagrams。编写一个程序,输入两个单词,然后判断一下,这两个单词是否是Anagrams。每一个单词的长度不会超过80个字符,而且是大小写无关的。 输入格式:输入有两行,分别为两个单词。 输出格式:输出只有一个字母Y或N,分别表示Yes和No。 输入输出样例样例输入UnclearNuclear样例输出Y
最开始的想法是两个字符串的字符逐一进行比较,个人实现起来却。。。借鉴了一下大佬的想法,可以先对字符串进行操作,这样比较起来就是十分地方便了。
//Anagrams问题#include<iostream>#include<algorithm>#include<string>using namespace std;int main(){ ...
Torry的困惑(基本型)
试题 算法训练 Torry的困惑(基本型)资源限制时间限制:1.0s 内存限制:512.0MB问题描述 Torry从小喜爱数学。一天,老师告诉他,像2、3、5、7……这样的数叫做质数。Torry突然想到一个问题,前10、100、1000、10000……个质数的乘积是多少呢?他把这个问题告诉老师。老师愣住了,一时回答不出来。于是Torry求助于会编程的你,请你算出前n个质数的乘积。不过,考虑到你才接触编程不久,Torry只要你算出这个数模上50000的值。输入格式 仅包含一个正整数n,其中n<=100000。输出格式 输出一行,即前n个质数的乘积模50000的值。样例输入1
样例输出
2
#include<iostream>using namespace std;bool ZHISHU(int a){ if(a==2||a==3){ return true; } for(int i=2;i<a;i++){ if(a%i==0){ return false; } } retu ...
出现次数最多的整数
试题 算法训练 出现次数最多的整数资源限制时间限制:1.0s 内存限制:512.0MB 问题描述 编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20。然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来。如果有两个元素值出现的次数相同,即并列第一,那么只打印比较小的那个值。 输入格式:第一行是一个整数N,N £ 20;接下来有N行,每一行表示一个整数,并且按照从小到大的顺序排列。 输出格式:输出只有一行,即出现次数最多的那个元素值。输入输出样例样例输入5100150150200250样例输出150
#include<iostream>using namespace std;int main(){ int N; //整数个数 cin>>N; if(N<=0){ //输入为零或负数,直接退出 return 0; } int a[N]; int b[N]={0}; //用于存储数组每一个数的重复的次数 f ...
分解质因数
试题 算法提高 分解质因数资源限制时间限制:1.0s 内存限制:256.0MB问题描述 给定一个正整数n,尝试对其分解质因数输入格式 仅一行,一个正整数,表示待分解的质因数输出格式 仅一行,从小到大依次输出其质因数,相邻的数用空格隔开样例输入100样例输出2 2 5 5数据规模和约定 n<=2147483647
#include <iostream>using namespace std;int main(){ int n, n2; cin >> n; n2 = n; if(n < 2)return 0; //小于2的数不合法,若n为质数则输出它本身 for (int i = 2; i*i <= n2; i++) //根号n复杂度 { while (n2%i == 0) { n2 = n2 / i; cout << i; ...
删除数组零元素
试题 算法训练 删除数组零元素资源限制时间限制:1.0s 内存限制:512.0MB从键盘读入n个整数放入数组中,编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动。注意,CompactIntegers函数需要接受数组及其元素个数作为参数,函数返回值应为删除操作执行后数组的新元素个数。输出删除后数组中元素的个数并依次输出数组元素。样例输入: (输入格式说明:5为输入数据的个数,3 4 0 0 2 是以空格隔开的5个整数)53 4 0 0 2样例输出:(输出格式说明:3为非零数据的个数,3 4 2 是以空格隔开的3个非零整数)33 4 2样例输入:70 0 7 0 0 9 0样例输出:27 9样例输入:30 0 0样例输出:0
#include<iostream>using namespace std;void CompactIntergers(int a[],int n){ //这里我直接用void 返回类型的函数,直接在函数中输出结果 int k=0; int b[50]; int index=0; for(int ...