2013级C++第15周项目——二维数组

课程主页在:http://blog.csdn.net/sxhelijian/article/details/11890759

【项目1-折腾二维数组】创建一个长度为5行4列的二维整型数组,通过初始化,为数组中的前两列的10个元素赋初值,然后通过键盘输入,使后两列的10个元素获得值,将所有元素值乘以3后保存在数组中。输出数组时,按行序优先输出,再按列序优先输出(输出的第一行是数组中的第一列……,其实输出的就是“转置”),再将数组“倒”着输出(即最后一行最后一列的最先输出,第0行第0列的最后输出),再输出数组中的所有偶数,以及行列下标之和为3的倍数的元素值。
     提示:编程时,可以做一点,调一点,全写好再改会自讨苦吃。

  同时也给出参考的运行界面:

  
     报告模板及部分代码

/*
* 程序的版权和版本声明部分
* Copyright (c)2013, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: array.cpp                           
* 作    者:                            
* 完成日期:  年  月   日
* 版本号: v1.0      
* 输入描述:无
* 问题描述:定义二维数组,为数组赋初值、输入值、更改值、按各种方法输出
*/
#include <iostream>
using namespace std;
int main( )
{
	int i,j;
    //创建5行4列的二维整型数组,为数组中的前两列的10个元素赋初值
	int a[5][4]={{0,1},{4,5},{8,9},{12,13},{16,17}}; 


	//键盘输入使后两列10个元素的值
	cout<<"请输入10个整数:"<<endl;


	//按行序优先输出
	cout<<"数组中的值为:"<<endl;
	
	//将所有元素值乘以3后保存在数组中
	cout<<"现在将所有元素乘以3倍...";
	
	//按行序优先输出
	cout<<"行序优先输出:"<<endl;
		
	//按列序优先输出(输出的第一行是数组中的第一列……,其实输出的就是“转置”)
	cout<<"列序优先输出:"<<endl;
	
	//将数组“倒”着输出(即最后一行最后一列的最先输出,第0行第0列的最后输出)
	cout<<"倒着输出:"<<endl;


	//输出数组中的所有偶数
	cout<<"数组中的偶数:"<<endl;
	
	//输出所有行列下标之和为3的倍数的元素值
	cout<<"行列下标之和为3的倍数的元素:"<<endl;


	return 0;
}

补充:为了督促同学们学会与习惯使用单步调试工具,要求在报告中加一张图,图示在单步执行时,看到的数组a中各行各列的值。


【项目2-杨辉三角】编写程序,打印出以下形式的扬辉三角形。
1
1    1
1    2   1
1    3    3    1
1    4   6    4    1
1    5   10   10   5    1
1    6   15   20   15   6   1
  可以将杨辉三角形的值放在一个方形矩阵的下半三角中,如果需打印7行杨辉三角形,应该定义等于或大于7X7的方形矩阵,只是矩阵的上半部和其余部分并不使用。杨辉三角形具有如下特点:(1)第0列和对角线上的元素都为1。(2)除第0列和对角线上的元素以外,其它元素的值均为前一行上的同列元素和前一列元素之和。
  函数setdata按以上规律给数组元素置数,函数outdata输出杨辉三角形。

#include <iostream>  
using namespace std;  
int main()  
{  
  int a[7][7]={0};  
  setdata(a); //给数组赋值  
  outdata(a); //输出数组  
  return 0;
}  
void setdata(int a[7][7])  
{  
}  
void outdata(int a[7][7])  
{   
}  

【项目3-带姓名的成绩单】设score数组中存储同学们的C++成绩,增加一个数组string name[20]并赋初值,表示同学们的姓名。这两个数组中,同学的姓名与成绩的下标保持一致(例如name[1]和score[1]表示同一位同学的姓名和C++成绩)。请(1)输出按成绩排序后的同学的名单;(2)输出按同学姓名排序后的成绩单(排序对象是字符串)。提示:排序中交换score中的元素时,只要同时也交换name中的相应元素,就可以实现姓名和成绩的同步(如果交换成绩而不交换姓名,两者的对应关系就被破坏了。)



【项目4-多科成绩单】用二维数组score[][4]保存同学们的高数、英语、C++成绩及总成绩(在此假设学生的学号为整型的连续值,用数组的行下标作学号)。在此基础上,完成下面的操作:
(1)设计输入成绩的函数,输入3科成绩后可以自动求出总分,并将数据全保存到数组中;
(2)输出各门课及总分的最高成绩、最低成绩、平均成绩和成绩的标准偏差;
(3)输出考得总分最高、最低同学的人数及对应的学号。
要求:学生人数num在main()函数中输入,score[][4]数组也是main()函数的局部变量,最好将其他功能也设计成函数,使main()函数尽可能地简单。
【项目4扩展(选做)-带姓名的多科成绩单】增加用数组string name[]表示同学们的姓名,使姓名与成绩的下标保持一致(例如name[1]和score[1][0]、score[1][1]、score[1][2]和score[1][3]表示同一位同学的数据)。据此,将项目4中的第(3)项任务改为输出总分最高的同学的姓名。


【项目5-电子词典】:做一个简单的电子词典。在文件dictionary.txt中(本文后附了一部分(b打头的词)作为调试,校内同学到我的BB教学平台中找,校外人士感兴趣的告知我Email),保存的是英汉对照的一个词典,词汇量近8000个,英文与释义间用’\t’隔开。编程序,将文件中的内容读到两个数组e[]和c[]中,分别代表英文和中文,由用户输入英文词,显示中文意思。运行程序后,支持用户连续地查词典,直到输入“0000”结束,如下图:
      
  提示:文件中的词汇已经排序,故在查找时,用二分查找法提高效率。


【项目6-体会棋盘游戏中的数据存储】
  定义一个8行8列的二维数组a[8][8]。
  

  (1)为二维数组中的数据赋50以内的随机数(程序模板中setdata()函数已经完成,利用产生随机数的系统函数实现),可能的取值如上图所示;
  (2)设计函数out()按行输出二维数组中的数据;
  (3)设计函数outDiagonal()输出从左上到右下对角线上的元素的值,如对图的数据而言,输出为48 34 12 31 40 42 34 45;再输出从右上到左下对角线上的值;
  (4)将此数组视为“扫雷”游戏的界面(实际上扫雷游戏的界面一般就用二维数组保存其界面),通过键盘输入一个位置,输出其周围八个格子中的数据,如输入2 2时,输出34 30 47 29 48 14 12 31(注意:一共八个,不包括该位置上的数)(参见图中的黄色部分),计算这些数的和并输出。另外,如果选择的位置在边缘或角上时,周围的格数不够八个,按实际个数输出。请用循环有规律地列举出来各个值,不要采用顺序结构逐个罗列。这项功能由函数mine()完成。
  (5)设计函数change()改变数组中的值。改变的规则是:从第2行(即a[1]行)开始到最后一行,每一元素是其正上方元素和右上方元素之和,例如a[1][0]取a[0][0]和a[0][1]之和,a[1][1]取a[0][1]和a[0][2]之和,……。对各行最后一列元素,其右上方无数据,取上一行中的第一个元素,如a[1][7]取a[0][7]和a[0][0]之和。对上图中的数据,a[1]行的  元素将依次为:50 27 41 30 33 63 60 64,a[2]行依次为77 68…114。
程序模板:

#include  <iostream>
#include <time.h>
using namespace std;
void setdata(int a[8][8]);  //设置随机数
void out(int a[8][8]);		//输出数组
void outDiagonal(int a[8][8]);  //输出对角线元素的值
void mine(int a[8][8],int x, int y);		//按“扫雷”游戏的规则输出相邻格子
void change(int a[8][8]); 				//按要求改变数值
int main()
{
	int a[8][8],x,y;
	setdata(a);
	out(a);  
	outDiagonal(a);
	cout<<"输入一个位置:";
	cin>>x>>y;
	mine(a,x,y);
	change(a);
	out(a);
	return 0;
}
void setdata(int a[8][8])
{
	int i,j;
	srand(time(NULL));//需要用当前时间作“种子”,以便每次运行取得的序列不同
	for(i=0;i<8;i++)
		for(j=0;j<8;j++)
			a[i][j]=rand()%50+1;
		return;
}
//按行序优先输出数组
void out(int a[8][8])
{
}
//输出对角线元素的值(从左上到右下、从右上到左下)
void outDiagonal(int a[8][8])
{
}
//按扫雷游戏规则,输出a[x][y]周围的8个数字
void mine(int a[8][8],int x, int y)
{
}
//按题目中所言规则更改元素的值
void change(int a[8][8])
{
}

【拓展-二维数组更多用处】这部分可以不去选择实践,看看、想想即可。
  中国象棋的棋盘也可以采用二维数组存储。
  (1)下棋程序需要体现相关的规则,例如,马走日。通过键盘输入一个位置,输出按“日”字型可以走到的所有位置,及其位置上的数值。例如,在项目6的图中,输入2 2时,输出(0,1,2)(0,3,16) (1,0,9) (1,4,12)……(项目6图中的背景有斜线的部分。可走到的位置一般为八个,位置在边缘或角上时,可能不够八个,按实际输出)。
  (2)马走日还有“别马腿”的规则。在任务4的图中,如果马腿位置上的数大于25,认为马腿被别了(实际游戏中,以该位置是否有棋子进行判断)。请在(1)的基础上考虑这一规则,只输出所有能走到的位置及数值。
  俄罗斯方块中的每一个小方块也用二维数组(一般4*4或8*8)表示,单色游戏数组元素用0、1即可,彩色的取值不限于0、1。对小方块的基本操作包括左旋、右旋、反转等操作。请针对上面的二维数组,实现左旋、右旋、反转等操作。
  JPEG是数字图像存储的国际标准。在JPEG编码规则中,其编码的基本单位是8*8的图像“块”,其中有一个环节叫“Z字型编码”,也即将一个8*8的“块”中数据按如图所示的方向取出,形成一个1*64的向量(可以保存在一个一维数组中)。请输出前面的8*8的数据块对应的向量。

  
  《线性代数》是工程数学的重要组成,在大二时开设,其中将涉及大量矩阵的运算,用于解决工程中的问题。在编程实现矩阵操作时,就是二维数组的操作。



==================== 迂者 贺利坚 CSDN博客专栏=================

|==  IT学子成长指导专栏  专栏文章分类目录(不定期更新)    ==|

|== C++ 课堂在线专栏   贺利坚课程教学链接(分课程年级)   ==|

======== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =======




附:部分词典,复制到词本中自建文件

b.c. (缩)公元前
b/l n.(缩)提单
baby n.婴儿,年龄最小的人
baby-sit v.(替人)看护小孩
baby-sitter n.看护小孩的人
bachelor n.单身汉,学士
back n.背;adj.背后的
backbone n.脊梁骨
backdate v.回溯
background n.背景,经历
backing n.倒退,支持物
backlog n.未交付的订货
backward adv.向后,逆
backwardness n.落后(状态)
bacon n.咸肉,熏肉
bacterium n.细菌
bad adj.坏的,低劣的
badge n.徽章
badly adv.坏,非常,严重地
badminton n.羽毛球
baffle v.困扰,难倒
bag n.袋子,提包
baggage n.行李
baggy adj.袋状的
bait n.饵,诱饵
bake v.烤,烘
baker n.面包师
bakery n.面包店
balance n.平衡,天平,余额
balcony n.阳台
bald adj.秃的
ball n.球,球状物,舞会
ballet n.芭蕾舞
balloon n.气球
ballooning n.热气球飞行运动
ball-point pen;n.圆珠笔
ballroom n.舞厅
bamboo n.竹
bamboo-shoot n.竹笋
banana n.香蕉
band n.乐队,带子;v.联合
bandage n.绷带
bandit n.盗匪,歹徒
bang n.,v.砰的一响
bank n.岸,银行
banker n.银行家
banking n.银行业务、金融业
bankrupt n.,v.,adj.破产
banner n.旗帜,横幅
banquet n.宴会
bar n.棒,杆,酒吧
barber n.理发师
bare adj.裸的,直率的
barely adv.赤裸裸地
bargain n.交易,便宜货
barge n.驳船
bark n.狗吠,树皮;v.吠
barn n.谷仓,牲口棚
barometer n.晴雨表,标记
baron n.男爵
baroness n.男爵夫人,女男爵
barrel n.桶,枪(炮)管
barren adj.不育的,贫瘠的
barrier n.障碍,壁垒
barter n.易货贸易
base n.基础,基地;v.基于
baseball n.棒球
basement n.地下室,地窖
basic adj.基本的,基础的
basically adv.基本上,主要地
basin n.盆,盆地
basis n.基础,根据
basket n.篮子,筐
basketball n.篮球
bat n.球拍,蝙蝠;v.击打
bath n.洗澡,浴室
bathe v.洗澡,冲洗
bathroom n.浴室,洗手间
batter v.打击
battery n.电池
battle n.战斗,战役
bay n.海湾,湾
bazaar n.集市
be v.是,存在
beach n.海滩,湖滨
bead n.有孔小珠
beak n.鸟嘴
beam n.梁,射线;v.发光
bean n.豆子
bear v.负担,忍受,生育
bearing n.举止,意义,轴承
bearish adj.熊市的
beast n.野兽,牲畜
beat v.打,击败;n.击打
beautiful adj.美丽的,绝妙的
beauty n.美,美女
because conj.因为,由于
become v.变成
bed n.床,河床,苗圃
bedroom n.卧室
bee n.蜜蜂
beef n.牛肉
beer n.啤酒
beetle n.甲虫
before prep.在...前面
beforehand adv.事先,预先
beg v.乞讨,恳求
beggar n.乞丐
begin v.开始,着手进行
beginner n.初学者
beginning n.开端,起点
behalf n.代表
behave v.行为,举动
behavior n.行为,举止
behind prep.在...后面
behindhand adj.落后,事后
being n.生物,存在
belief n.信仰,信心
believe v.相信,认为
bell n.钟,铃
belly n.肚子
belong v.属于
beloved adj.敬爱的;n.爱人
below adj.,prep.在...下面
belt n.带,腰带
bench n.长凳,工作台
bend v.弯曲,俯身;n.拐弯
beneath prep.在...之下
beneficial adj.有益的,有利的
beneficiary n.受益者
benefit n.益处,利益
benevolence n.慈悲,捐助
benevolent adj.乐善好施的
bent adj.弯曲的
berry n.浆果
beside prep.在...之旁
besides adj.而且;prep...之外
best adj.最好的
bestow v.赠给,授予
best-seller n.畅销书(货)
best-selling adj.畅销的
bet n.,v.打赌
betray v.背叛,泄露
betrayal n.背叛,暴露
better adj.更好的;adv.较好
better-off adj.经济情况较好的
between prep.在两者之间
beverage n.饮料
beware v.当心
bewilder v.迷惑,茫然
beyond prep.在...那边,超出
bias n.偏好
bible n.圣经
bicycle n.自行车
bid n.,v.报价,投标
bidding n.投标
big adj.大的,重大的
bike n.自行车
bill n.帐单,议案,钞票
billion n.十亿
bind v.捆绑,约束
binding n.装订
biographer n.传记记者
biography n.传记
biologist n.生物学家
biology n.生物学
bird n.鸟
birth n.出生,创始
birthday n.生日,诞辰
birthplace n.出生地
biscuit n.饼干
bishop n.主教
bit n.小片,一点
bite n.,v.咬,叮;n.一口
bitter adj.苦的,痛苦的
bitterly adv.惨痛地,辛酸地
bitterness n.苦味,苦难
black adj.黑的;n.黑色
blackboard n.黑板
blacksmith n.铁匠
blade n.刀刃,叶片
blame v.责备;n.过失
blank adj.空白的;n.空格
blanket n.毛毯
blast n.阵风;v.爆炸
blaze n.火光,光亮
bleach v.漂白,变白
bleed v.出血,流血
blend v.混合,掺混
bless v.保佑,祝福
blessing n.祝福
blind adj.瞎的;v.使失明
blink adj.眨眼,闪烁
block n.大块,街区,障碍物
blockage n.封锁
blond adj.金发的
blood n.血,血统
bloody adj.流血的,残忍的
bloom n.花;v.开花
blossom n.(果树的)花
blot n.污迹
blouse n.女衫
blow v.吹,吹掉,刮风
blue adj.蓝色的,忧郁的
blunder n.大错
blunt adj.钝的,生硬的
blush v.脸红,害臊
blushy adj.害羞的
board n.木板,伙食,董事会
boarding n.伙食
boast v.夸口,以...而自豪
boat n.小船,艇
body n.身体,尸体,团体
bodyguard n.保镖
boil v.沸腾,煮沸
boiler n.锅炉
boiling adj.沸腾的
bold adj.大胆的
boldness n.胆略
bolt n.螺检,插销;v.闩门
bomb n.炸弹;v.轰炸
bomber n.轰炸机
bonafide adj.真诚的,无欺的
bond n.束缚,联结,债券
bonded adj.保税的
bone n.骨,骨骼
bonus n.红利
bony adj.骨头的
book n.书;v.预订(票)
bookcase n.书橱
booking adj.定货
booklet n.小册子
bookshelf n.书架
bookstore n.书店
boom v.隆隆响,兴旺,繁荣
booming adj.兴旺的,繁荣的
boost v.抬高,促进
boot n.靴子
booth n.货摊,电话亭
border n.国界,边境
bore v.烦扰,使厌烦,钻孔
boring adj.讨厌的
born adj.出生的,天生的
borrow v.借,借用
borrowings n.借款
bosom n.胸,胸怀
boss n.上司,老板
bossy adj.好发号施令的
both pron.,adj.双方,两
bother v.打扰,麻烦;n.麻烦
bottle n.瓶子
bottle-neck n.影响...的环节
bottom n.底部,末尾
bottom-line n.末行数字,结果
bough n.大树枝
bounce v.跳起;n.跳跃
bound v.缚,以...为界
boundary n.界线,边界
bourgeois n.资产阶级分子
bow v.鞠躬,服从;n.弓
bowl n.碗,钵
bowling n.保龄球
box n.箱,盒;v.拳击
boxer n.拳击运动员
boxing n.拳击
boxing-day n.节礼日
boy n.男孩,小伙子
boycott v.,n.抵制
brace n.支撑;v.激励
bracket n.括号
brag v.吹嘘,夸口
brain n.脑子,头脑,智能
brake n.制动器;v.刹车
brake n.v.刹车
branch n.树枝,分支,分部
brand n.牌子,商标
brandy n.白兰地
brass n.黄铜
brave adj.勇敢的;v.冒着
bravely adv.勇敢地
bravery n.勇敢
brazil n.巴西
brazilian adj.,n.巴西的(人)
breach n.违反(契约)
bread n.面包,生计
bread-earner n.挣钱养家的人
breadth n.宽度,大量
break n.打破,破坏;n.裂口
breakage n.裂口
breakdown n.故障,衰竭
breakfast n.早饭
breakthrough n.突破
breast n.乳房,胸脯
breath n.呼吸,气息
breathe v.呼吸
breed v.繁殖,饲养;n.品种
breeze n.微风
bribe v.贿赂
bribery v.贿赂
brick n.砖
bride n.新娘
bridegroom n.新郎
bridge n.桥梁,桥牌
bridle n.约束;v.抑制
brief adj.简短的
briefing n.简要情况
briefly adv.简单地,简短地
bright adj.明亮的,鲜明的
brighten v.使发光
brightness n.光辉,明亮
brilliance n.辉煌,光彩
brilliant v.辉煌的,杰出的
brim n.边,边缘
bring v.拿来,带来
brink n.边缘
brisk adj.敏捷的,活跃的
bristle n.鬃毛
britain n.不列颠,英国
british adj.英国的,英属的
brittle adj.易碎的,脆的
broad adj.宽的,辽阔的
broadcast v.,n.广播
broadcasting n.广播节目
broaden v.加宽,扩大
brochure n.产品介绍手册
broken adj.破碎的,毁坏了的
broker n.经纪人
bronze n.青铜
brood n.一窝
brook n.小河,溪流
broom n.扫帚
brother n.兄弟,同胞
brotherhood n.兄弟情谊
brother-in-law n.姻兄(弟)
brow n.眉毛,额
brown n.,adj.褐色(的)
bruise n.青肿;v.打伤
brush n.刷子,画笔;v.刷
brutal adj.野蛮的
brute n.禽兽,畜生
bubble n.气泡
bucket n.水桶
bud n.芽,蓓蕾
buddhism n.佛教
buddhist n.佛教徒
budget n.预算
buffalo n.水牛,野牛
buffet n.冷餐
bug n.臭虫,虫子
bugle n.喇叭
build v.建造,建设
builder n.建筑工人,建设者
building n.建筑物,大楼
bulb n.球形物,灯泡
bulk n.体积,大半
bulky adj.庞大的,笨重的
bull n.公牛
bullet n.子弹
bulletin n.公报
bullion n.金块,金条
bullish adj.行情看涨的
bump v.碰,颠簸;n.碰撞
bumpy adj.颠簸不平的
bunch n.一束
bundle n.,v.捆,包
burden n.担子,负担
burdensome adj.沉重的
bureau n.局,司,办公室
bureaucracy n.官僚主义
bureaucratic adj.官僚主义的
burglar n.夜盗,窃贼
burglary n.盗窃
burial n.埋葬
burn v.烧,燃烧,烧伤
burner n.喷灯
burnt adj.烧焦的,烧坏的
burst v.,n.爆炸,破裂
bury v.掩埋,安葬
bus n.公共汽车
bush n.灌木
bushel n.蒲式耳(重量单位)
business n.行业,买卖,商号
businesslike adj.事务式的
busy adj.忙碌的,热闹的
but prep.但是,除了
butcher n.屠夫;v.屠宰
butchery n.肉食店
butt n.根端;v.顶撞
butter n.黄油
butterfly n.蝴蝶
button n.钮扣,按钮
buy v.买,购买
buyer n.购买者
buzz v.嗡嗡叫;n.嗡嗡声
by prep.在...旁边,按照
bygone n.已往的,过时的
bypass n.旁道,分路
by-product n.副产品

  


http://blog.csdn.net/sxhelijian/article/details/11890759


【项目1-折腾二维数组】创建一个长度为5行4列的二维整型数组,通过初始化,为数组中的前两列的10个元素赋初值,然后通过键盘输入,使后两列的10个元素获得值,将所有元素值乘以3后保存在数组中。输出数组时,按行序优先输出,再按列序优先输出(输出的第一行是数组中的第一列……,其实输出的就是“转置”),再将数组“倒”着输出(即最后一行最后一列的最先输出,第0行第0列的最后输出),再输出数组中的所有偶数,以及行列下标之和为3的倍数的元素值。
     提示:编程时,可以做一点,调一点,全写好再改会自讨苦吃。

  同时也给出参考的运行界面:

  
     报告模板及部分代码

/*
* 程序的版权和版本声明部分
* Copyright (c)2012, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: array.cpp                           
* 作    者:                            
* 完成日期:  年  月   日
* 版本号: v1.0      
* 输入描述:无
* 问题描述:定义二维数组,为数组赋初值、输入值、更改值、按各种方法输出
*/
#include <iostream>
using namespace std;
int main( )
{
	int i,j;
    //创建5行4列的二维整型数组,为数组中的前两列的10个元素赋初值
	int a[5][4]={{0,1},{4,5},{8,9},{12,13},{16,17}}; 


	//键盘输入使后两列10个元素的值
	cout<<"请输入10个整数:"<<endl;


	//按行序优先输出
	cout<<"数组中的值为:"<<endl;
	
	//将所有元素值乘以3后保存在数组中
	cout<<"现在将所有元素乘以3倍...";
	
	//按行序优先输出
	cout<<"行序优先输出:"<<endl;
		
	//按列序优先输出(输出的第一行是数组中的第一列……,其实输出的就是“转置”)
	cout<<"列序优先输出:"<<endl;
	
	//将数组“倒”着输出(即最后一行最后一列的最先输出,第0行第0列的最后输出)
	cout<<"倒着输出:"<<endl;


	//输出数组中的所有偶数
	cout<<"数组中的偶数:"<<endl;
	
	//输出所有行列下标之和为3的倍数的元素值
	cout<<"行列下标之和为3的倍数的元素:"<<endl;


	return 0;
}

补充:为了督促同学们学会与习惯使用单步调试工具,要求在报告中加一张图,图示在单步执行时,看到的数组a中各行各列的值。


【项目2-杨辉三角】编写程序,打印出以下形式的扬辉三角形。
1
1    1
1    2   1
1    3    3    1
1    4   6    4    1
1    5   10   10   5    1
1    6   15   20   15   6   1
  可以将杨辉三角形的值放在一个方形矩阵的下半三角中,如果需打印7行杨辉三角形,应该定义等于或大于7X7的方形矩阵,只是矩阵的上半部和其余部分并不使用。杨辉三角形具有如下特点:(1)第0列和对角线上的元素都为1。(2)除第0列和对角线上的元素以外,其它元素的值均为前一行上的同列元素和前一列元素之和。
  函数setdata按以上规律给数组元素置数,函数outdata输出杨辉三角形。

#include <iostream>  
using namespace std;  
int main()  
{  
  int a[7][7]={0};  
  setdata(a); //给数组赋值  
  outdata(a); //输出数组  
  return 0;
}  
void setdata(int a[7][7])  
{  
}  
void outdata(int a[7][7])  
{   
}  

【项目3-带姓名的成绩单】设score数组中存储同学们的C++成绩,增加一个数组string name[20]并赋初值,表示同学们的姓名。这两个数组中,同学的姓名与成绩的下标保持一致(例如name[1]和score[1]表示同一位同学的姓名和C++成绩)。请(1)输出按成绩排序后的同学的名单;(2)输出按同学姓名排序后的成绩单(排序对象是字符串)。提示:排序中交换score中的元素时,只要同时也交换name中的相应元素,就可以实现姓名和成绩的同步(如果交换成绩而不交换姓名,两者的对应关系就被破坏了。)



【项目4-多科成绩单】用二维数组score[][4]保存同学们的高数、英语、C++成绩及总成绩(在此假设学生的学号为整型的连续值,用数组的行下标作学号)。在此基础上,完成下面的操作:
(1)设计输入成绩的函数,输入3科成绩后可以自动求出总分,并将数据全保存到数组中;
(2)输出各门课及总分的最高成绩、最低成绩、平均成绩和成绩的标准偏差;
(3)输出考得总分最高、最低同学的人数及对应的学号。
要求:学生人数num在main()函数中输入,score[][4]数组也是main()函数的局部变量,最好将其他功能也设计成函数,使main()函数尽可能地简单。
【项目4扩展(选做)-带姓名的多科成绩单】增加用数组string name[]表示同学们的姓名,使姓名与成绩的下标保持一致(例如name[1]和score[1][0]、score[1][1]、score[1][2]和score[1][3]表示同一位同学的数据)。据此,将项目4中的第(3)项任务改为输出总分最高的同学的姓名。


【项目5-电子词典】:做一个简单的电子词典。在文件dictionary.txt中(本文后附了一部分(b打头的词)作为调试,校内同学到我的BB教学平台中找,校外人士感兴趣的告知我Email),保存的是英汉对照的一个词典,词汇量近8000个,英文与释义间用’\t’隔开。编程序,将文件中的内容读到两个数组e[]和c[]中,分别代表英文和中文,由用户输入英文词,显示中文意思。运行程序后,支持用户连续地查词典,直到输入“0000”结束,如下图:
      
  提示:文件中的词汇已经排序,故在查找时,用二分查找法提高效率。


【项目6-体会棋盘游戏中的数据存储】
  定义一个8行8列的二维数组a[8][8]。
  

  (1)为二维数组中的数据赋50以内的随机数(程序模板中setdata()函数已经完成,利用产生随机数的系统函数实现),可能的取值如上图所示;
  (2)设计函数out()按行输出二维数组中的数据;
  (3)设计函数outDiagonal()输出从左上到右下对角线上的元素的值,如对图的数据而言,输出为48 34 12 31 40 42 34 45;再输出从右上到左下对角线上的值;
  (4)将此数组视为“扫雷”游戏的界面(实际上扫雷游戏的界面一般就用二维数组保存其界面),通过键盘输入一个位置,输出其周围八个格子中的数据,如输入2 2时,输出34 30 47 29 48 14 12 31(注意:一共八个,不包括该位置上的数)(参见图中的黄色部分),计算这些数的和并输出。另外,如果选择的位置在边缘或角上时,周围的格数不够八个,按实际个数输出。请用循环有规律地列举出来各个值,不要采用顺序结构逐个罗列。这项功能由函数mine()完成。
  (5)设计函数change()改变数组中的值。改变的规则是:从第2行(即a[1]行)开始到最后一行,每一元素是其正上方元素和右上方元素之和,例如a[1][0]取a[0][0]和a[0][1]之和,a[1][1]取a[0][1]和a[0][2]之和,……。对各行最后一列元素,其右上方无数据,取上一行中的第一个元素,如a[1][7]取a[0][7]和a[0][0]之和。对上图中的数据,a[1]行的  元素将依次为:50 27 41 30 33 63 60 64,a[2]行依次为77 68…114。
程序模板:

#include  <iostream>
#include <time.h>
using namespace std;
void setdata(int a[8][8]);  //设置随机数
void out(int a[8][8]);		//输出数组
void outDiagonal(int a[8][8]);  //输出对角线元素的值
void mine(int a[8][8],int x, int y);		//按“扫雷”游戏的规则输出相邻格子
void change(int a[8][8]); 				//按要求改变数值
int main()
{
	int a[8][8],x,y;
	setdata(a);
	out(a);  
	outDiagonal(a);
	cout<<"输入一个位置:";
	cin>>x>>y;
	mine(a,x,y);
	change(a);
	out(a);
	return 0;
}
void setdata(int a[8][8])
{
	int i,j;
	srand(time(NULL));//需要用当前时间作“种子”,以便每次运行取得的序列不同
	for(i=0;i<8;i++)
		for(j=0;j<8;j++)
			a[i][j]=rand()%50+1;
		return;
}
//按行序优先输出数组
void out(int a[8][8])
{
}
//输出对角线元素的值(从左上到右下、从右上到左下)
void outDiagonal(int a[8][8])
{
}
//按扫雷游戏规则,输出a[x][y]周围的8个数字
void mine(int a[8][8],int x, int y)
{
}
//按题目中所言规则更改元素的值
void change(int a[8][8])
{
}

【拓展-二维数组更多用处】这部分可以不去选择实践,看看、想想即可。
  中国象棋的棋盘也可以采用二维数组存储。
  (1)下棋程序需要体现相关的规则,例如,马走日。通过键盘输入一个位置,输出按“日”字型可以走到的所有位置,及其位置上的数值。例如,在项目6的图中,输入2 2时,输出(0,1,2)(0,3,16) (1,0,9) (1,4,12)……(项目6图中的背景有斜线的部分。可走到的位置一般为八个,位置在边缘或角上时,可能不够八个,按实际输出)。
  (2)马走日还有“别马腿”的规则。在任务4的图中,如果马腿位置上的数大于25,认为马腿被别了(实际游戏中,以该位置是否有棋子进行判断)。请在(1)的基础上考虑这一规则,只输出所有能走到的位置及数值。
  俄罗斯方块中的每一个小方块也用二维数组(一般4*4或8*8)表示,单色游戏数组元素用0、1即可,彩色的取值不限于0、1。对小方块的基本操作包括左旋、右旋、反转等操作。请针对上面的二维数组,实现左旋、右旋、反转等操作。
  JPEG是数字图像存储的国际标准。在JPEG编码规则中,其编码的基本单位是8*8的图像“块”,其中有一个环节叫“Z字型编码”,也即将一个8*8的“块”中数据按如图所示的方向取出,形成一个1*64的向量(可以保存在一个一维数组中)。请输出前面的8*8的数据块对应的向量。

  
  《线性代数》是工程数学的重要组成,在大二时开设,其中将涉及大量矩阵的运算,用于解决工程中的问题。在编程实现矩阵操作时,就是二维数组的操作。


附:部分词典,复制到词本中自建文件

b.c. (缩)公元前
b/l n.(缩)提单
baby n.婴儿,年龄最小的人
baby-sit v.(替人)看护小孩
baby-sitter n.看护小孩的人
bachelor n.单身汉,学士
back n.背;adj.背后的
backbone n.脊梁骨
backdate v.回溯
background n.背景,经历
backing n.倒退,支持物
backlog n.未交付的订货
backward adv.向后,逆
backwardness n.落后(状态)
bacon n.咸肉,熏肉
bacterium n.细菌
bad adj.坏的,低劣的
badge n.徽章
badly adv.坏,非常,严重地
badminton n.羽毛球
baffle v.困扰,难倒
bag n.袋子,提包
baggage n.行李
baggy adj.袋状的
bait n.饵,诱饵
bake v.烤,烘
baker n.面包师
bakery n.面包店
balance n.平衡,天平,余额
balcony n.阳台
bald adj.秃的
ball n.球,球状物,舞会
ballet n.芭蕾舞
balloon n.气球
ballooning n.热气球飞行运动
ball-point pen;n.圆珠笔
ballroom n.舞厅
bamboo n.竹
bamboo-shoot n.竹笋
banana n.香蕉
band n.乐队,带子;v.联合
bandage n.绷带
bandit n.盗匪,歹徒
bang n.,v.砰的一响
bank n.岸,银行
banker n.银行家
banking n.银行业务、金融业
bankrupt n.,v.,adj.破产
banner n.旗帜,横幅
banquet n.宴会
bar n.棒,杆,酒吧
barber n.理发师
bare adj.裸的,直率的
barely adv.赤裸裸地
bargain n.交易,便宜货
barge n.驳船
bark n.狗吠,树皮;v.吠
barn n.谷仓,牲口棚
barometer n.晴雨表,标记
baron n.男爵
baroness n.男爵夫人,女男爵
barrel n.桶,枪(炮)管
barren adj.不育的,贫瘠的
barrier n.障碍,壁垒
barter n.易货贸易
base n.基础,基地;v.基于
baseball n.棒球
basement n.地下室,地窖
basic adj.基本的,基础的
basically adv.基本上,主要地
basin n.盆,盆地
basis n.基础,根据
basket n.篮子,筐
basketball n.篮球
bat n.球拍,蝙蝠;v.击打
bath n.洗澡,浴室
bathe v.洗澡,冲洗
bathroom n.浴室,洗手间
batter v.打击
battery n.电池
battle n.战斗,战役
bay n.海湾,湾
bazaar n.集市
be v.是,存在
beach n.海滩,湖滨
bead n.有孔小珠
beak n.鸟嘴
beam n.梁,射线;v.发光
bean n.豆子
bear v.负担,忍受,生育
bearing n.举止,意义,轴承
bearish adj.熊市的
beast n.野兽,牲畜
beat v.打,击败;n.击打
beautiful adj.美丽的,绝妙的
beauty n.美,美女
because conj.因为,由于
become v.变成
bed n.床,河床,苗圃
bedroom n.卧室
bee n.蜜蜂
beef n.牛肉
beer n.啤酒
beetle n.甲虫
before prep.在...前面
beforehand adv.事先,预先
beg v.乞讨,恳求
beggar n.乞丐
begin v.开始,着手进行
beginner n.初学者
beginning n.开端,起点
behalf n.代表
behave v.行为,举动
behavior n.行为,举止
behind prep.在...后面
behindhand adj.落后,事后
being n.生物,存在
belief n.信仰,信心
believe v.相信,认为
bell n.钟,铃
belly n.肚子
belong v.属于
beloved adj.敬爱的;n.爱人
below adj.,prep.在...下面
belt n.带,腰带
bench n.长凳,工作台
bend v.弯曲,俯身;n.拐弯
beneath prep.在...之下
beneficial adj.有益的,有利的
beneficiary n.受益者
benefit n.益处,利益
benevolence n.慈悲,捐助
benevolent adj.乐善好施的
bent adj.弯曲的
berry n.浆果
beside prep.在...之旁
besides adj.而且;prep...之外
best adj.最好的
bestow v.赠给,授予
best-seller n.畅销书(货)
best-selling adj.畅销的
bet n.,v.打赌
betray v.背叛,泄露
betrayal n.背叛,暴露
better adj.更好的;adv.较好
better-off adj.经济情况较好的
between prep.在两者之间
beverage n.饮料
beware v.当心
bewilder v.迷惑,茫然
beyond prep.在...那边,超出
bias n.偏好
bible n.圣经
bicycle n.自行车
bid n.,v.报价,投标
bidding n.投标
big adj.大的,重大的
bike n.自行车
bill n.帐单,议案,钞票
billion n.十亿
bind v.捆绑,约束
binding n.装订
biographer n.传记记者
biography n.传记
biologist n.生物学家
biology n.生物学
bird n.鸟
birth n.出生,创始
birthday n.生日,诞辰
birthplace n.出生地
biscuit n.饼干
bishop n.主教
bit n.小片,一点
bite n.,v.咬,叮;n.一口
bitter adj.苦的,痛苦的
bitterly adv.惨痛地,辛酸地
bitterness n.苦味,苦难
black adj.黑的;n.黑色
blackboard n.黑板
blacksmith n.铁匠
blade n.刀刃,叶片
blame v.责备;n.过失
blank adj.空白的;n.空格
blanket n.毛毯
blast n.阵风;v.爆炸
blaze n.火光,光亮
bleach v.漂白,变白
bleed v.出血,流血
blend v.混合,掺混
bless v.保佑,祝福
blessing n.祝福
blind adj.瞎的;v.使失明
blink adj.眨眼,闪烁
block n.大块,街区,障碍物
blockage n.封锁
blond adj.金发的
blood n.血,血统
bloody adj.流血的,残忍的
bloom n.花;v.开花
blossom n.(果树的)花
blot n.污迹
blouse n.女衫
blow v.吹,吹掉,刮风
blue adj.蓝色的,忧郁的
blunder n.大错
blunt adj.钝的,生硬的
blush v.脸红,害臊
blushy adj.害羞的
board n.木板,伙食,董事会
boarding n.伙食
boast v.夸口,以...而自豪
boat n.小船,艇
body n.身体,尸体,团体
bodyguard n.保镖
boil v.沸腾,煮沸
boiler n.锅炉
boiling adj.沸腾的
bold adj.大胆的
boldness n.胆略
bolt n.螺检,插销;v.闩门
bomb n.炸弹;v.轰炸
bomber n.轰炸机
bonafide adj.真诚的,无欺的
bond n.束缚,联结,债券
bonded adj.保税的
bone n.骨,骨骼
bonus n.红利
bony adj.骨头的
book n.书;v.预订(票)
bookcase n.书橱
booking adj.定货
booklet n.小册子
bookshelf n.书架
bookstore n.书店
boom v.隆隆响,兴旺,繁荣
booming adj.兴旺的,繁荣的
boost v.抬高,促进
boot n.靴子
booth n.货摊,电话亭
border n.国界,边境
bore v.烦扰,使厌烦,钻孔
boring adj.讨厌的
born adj.出生的,天生的
borrow v.借,借用
borrowings n.借款
bosom n.胸,胸怀
boss n.上司,老板
bossy adj.好发号施令的
both pron.,adj.双方,两
bother v.打扰,麻烦;n.麻烦
bottle n.瓶子
bottle-neck n.影响...的环节
bottom n.底部,末尾
bottom-line n.末行数字,结果
bough n.大树枝
bounce v.跳起;n.跳跃
bound v.缚,以...为界
boundary n.界线,边界
bourgeois n.资产阶级分子
bow v.鞠躬,服从;n.弓
bowl n.碗,钵
bowling n.保龄球
box n.箱,盒;v.拳击
boxer n.拳击运动员
boxing n.拳击
boxing-day n.节礼日
boy n.男孩,小伙子
boycott v.,n.抵制
brace n.支撑;v.激励
bracket n.括号
brag v.吹嘘,夸口
brain n.脑子,头脑,智能
brake n.制动器;v.刹车
brake n.v.刹车
branch n.树枝,分支,分部
brand n.牌子,商标
brandy n.白兰地
brass n.黄铜
brave adj.勇敢的;v.冒着
bravely adv.勇敢地
bravery n.勇敢
brazil n.巴西
brazilian adj.,n.巴西的(人)
breach n.违反(契约)
bread n.面包,生计
bread-earner n.挣钱养家的人
breadth n.宽度,大量
break n.打破,破坏;n.裂口
breakage n.裂口
breakdown n.故障,衰竭
breakfast n.早饭
breakthrough n.突破
breast n.乳房,胸脯
breath n.呼吸,气息
breathe v.呼吸
breed v.繁殖,饲养;n.品种
breeze n.微风
bribe v.贿赂
bribery v.贿赂
brick n.砖
bride n.新娘
bridegroom n.新郎
bridge n.桥梁,桥牌
bridle n.约束;v.抑制
brief adj.简短的
briefing n.简要情况
briefly adv.简单地,简短地
bright adj.明亮的,鲜明的
brighten v.使发光
brightness n.光辉,明亮
brilliance n.辉煌,光彩
brilliant v.辉煌的,杰出的
brim n.边,边缘
bring v.拿来,带来
brink n.边缘
brisk adj.敏捷的,活跃的
bristle n.鬃毛
britain n.不列颠,英国
british adj.英国的,英属的
brittle adj.易碎的,脆的
broad adj.宽的,辽阔的
broadcast v.,n.广播
broadcasting n.广播节目
broaden v.加宽,扩大
brochure n.产品介绍手册
broken adj.破碎的,毁坏了的
broker n.经纪人
bronze n.青铜
brood n.一窝
brook n.小河,溪流
broom n.扫帚
brother n.兄弟,同胞
brotherhood n.兄弟情谊
brother-in-law n.姻兄(弟)
brow n.眉毛,额
brown n.,adj.褐色(的)
bruise n.青肿;v.打伤
brush n.刷子,画笔;v.刷
brutal adj.野蛮的
brute n.禽兽,畜生
bubble n.气泡
bucket n.水桶
bud n.芽,蓓蕾
buddhism n.佛教
buddhist n.佛教徒
budget n.预算
buffalo n.水牛,野牛
buffet n.冷餐
bug n.臭虫,虫子
bugle n.喇叭
build v.建造,建设
builder n.建筑工人,建设者
building n.建筑物,大楼
bulb n.球形物,灯泡
bulk n.体积,大半
bulky adj.庞大的,笨重的
bull n.公牛
bullet n.子弹
bulletin n.公报
bullion n.金块,金条
bullish adj.行情看涨的
bump v.碰,颠簸;n.碰撞
bumpy adj.颠簸不平的
bunch n.一束
bundle n.,v.捆,包
burden n.担子,负担
burdensome adj.沉重的
bureau n.局,司,办公室
bureaucracy n.官僚主义
bureaucratic adj.官僚主义的
burglar n.夜盗,窃贼
burglary n.盗窃
burial n.埋葬
burn v.烧,燃烧,烧伤
burner n.喷灯
burnt adj.烧焦的,烧坏的
burst v.,n.爆炸,破裂
bury v.掩埋,安葬
bus n.公共汽车
bush n.灌木
bushel n.蒲式耳(重量单位)
business n.行业,买卖,商号
businesslike adj.事务式的
busy adj.忙碌的,热闹的
but prep.但是,除了
butcher n.屠夫;v.屠宰
butchery n.肉食店
butt n.根端;v.顶撞
butter n.黄油
butterfly n.蝴蝶
button n.钮扣,按钮
buy v.买,购买
buyer n.购买者
buzz v.嗡嗡叫;n.嗡嗡声
by prep.在...旁边,按照
bygone n.已往的,过时的
bypass n.旁道,分路
by-product n.副产品

  


http://blog.csdn.net/sxhelijian/article/details/11890759



【项目1-折腾二维数组】创建一个长度为5行4列的二维整型数组,通过初始化,为数组中的前两列的10个元素赋初值,然后通过键盘输入,使后两列的10个元素获得值,将所有元素值乘以3后保存在数组中。输出数组时,按行序优先输出,再按列序优先输出(输出的第一行是数组中的第一列……,其实输出的就是“转置”),再将数组“倒”着输出(即最后一行最后一列的最先输出,第0行第0列的最后输出),再输出数组中的所有偶数,以及行列下标之和为3的倍数的元素值。
     提示:编程时,可以做一点,调一点,全写好再改会自讨苦吃。

  同时也给出参考的运行界面:

  
     报告模板及部分代码

/*
* 程序的版权和版本声明部分
* Copyright (c)2012, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: array.cpp                           
* 作    者:                            
* 完成日期:  年  月   日
* 版本号: v1.0      
* 输入描述:无
* 问题描述:定义二维数组,为数组赋初值、输入值、更改值、按各种方法输出
*/
#include <iostream>
using namespace std;
int main( )
{
	int i,j;
    //创建5行4列的二维整型数组,为数组中的前两列的10个元素赋初值
	int a[5][4]={{0,1},{4,5},{8,9},{12,13},{16,17}}; 


	//键盘输入使后两列10个元素的值
	cout<<"请输入10个整数:"<<endl;


	//按行序优先输出
	cout<<"数组中的值为:"<<endl;
	
	//将所有元素值乘以3后保存在数组中
	cout<<"现在将所有元素乘以3倍...";
	
	//按行序优先输出
	cout<<"行序优先输出:"<<endl;
		
	//按列序优先输出(输出的第一行是数组中的第一列……,其实输出的就是“转置”)
	cout<<"列序优先输出:"<<endl;
	
	//将数组“倒”着输出(即最后一行最后一列的最先输出,第0行第0列的最后输出)
	cout<<"倒着输出:"<<endl;


	//输出数组中的所有偶数
	cout<<"数组中的偶数:"<<endl;
	
	//输出所有行列下标之和为3的倍数的元素值
	cout<<"行列下标之和为3的倍数的元素:"<<endl;


	return 0;
}

补充:为了督促同学们学会与习惯使用单步调试工具,要求在报告中加一张图,图示在单步执行时,看到的数组a中各行各列的值。


【项目2-杨辉三角】编写程序,打印出以下形式的扬辉三角形。
1
1    1
1    2   1
1    3    3    1
1    4   6    4    1
1    5   10   10   5    1
1    6   15   20   15   6   1
  可以将杨辉三角形的值放在一个方形矩阵的下半三角中,如果需打印7行杨辉三角形,应该定义等于或大于7X7的方形矩阵,只是矩阵的上半部和其余部分并不使用。杨辉三角形具有如下特点:(1)第0列和对角线上的元素都为1。(2)除第0列和对角线上的元素以外,其它元素的值均为前一行上的同列元素和前一列元素之和。
  函数setdata按以上规律给数组元素置数,函数outdata输出杨辉三角形。

#include <iostream>  
using namespace std;  
int main()  
{  
  int a[7][7]={0};  
  setdata(a); //给数组赋值  
  outdata(a); //输出数组  
  return 0;
}  
void setdata(int a[7][7])  
{  
}  
void outdata(int a[7][7])  
{   
}  

【项目3-带姓名的成绩单】设score数组中存储同学们的C++成绩,增加一个数组string name[20]并赋初值,表示同学们的姓名。这两个数组中,同学的姓名与成绩的下标保持一致(例如name[1]和score[1]表示同一位同学的姓名和C++成绩)。请(1)输出按成绩排序后的同学的名单;(2)输出按同学姓名排序后的成绩单(排序对象是字符串)。提示:排序中交换score中的元素时,只要同时也交换name中的相应元素,就可以实现姓名和成绩的同步(如果交换成绩而不交换姓名,两者的对应关系就被破坏了。)



【项目4-多科成绩单】用二维数组score[][4]保存同学们的高数、英语、C++成绩及总成绩(在此假设学生的学号为整型的连续值,用数组的行下标作学号)。在此基础上,完成下面的操作:
(1)设计输入成绩的函数,输入3科成绩后可以自动求出总分,并将数据全保存到数组中;
(2)输出各门课及总分的最高成绩、最低成绩、平均成绩和成绩的标准偏差;
(3)输出考得总分最高、最低同学的人数及对应的学号。
要求:学生人数num在main()函数中输入,score[][4]数组也是main()函数的局部变量,最好将其他功能也设计成函数,使main()函数尽可能地简单。
【项目4扩展(选做)-带姓名的多科成绩单】增加用数组string name[]表示同学们的姓名,使姓名与成绩的下标保持一致(例如name[1]和score[1][0]、score[1][1]、score[1][2]和score[1][3]表示同一位同学的数据)。据此,将项目4中的第(3)项任务改为输出总分最高的同学的姓名。


【项目5-电子词典】:做一个简单的电子词典。在文件dictionary.txt中(本文后附了一部分(b打头的词)作为调试,校内同学到我的BB教学平台中找,校外人士感兴趣的告知我Email),保存的是英汉对照的一个词典,词汇量近8000个,英文与释义间用’\t’隔开。编程序,将文件中的内容读到两个数组e[]和c[]中,分别代表英文和中文,由用户输入英文词,显示中文意思。运行程序后,支持用户连续地查词典,直到输入“0000”结束,如下图:
      
  提示:文件中的词汇已经排序,故在查找时,用二分查找法提高效率。


【项目6-体会棋盘游戏中的数据存储】
  定义一个8行8列的二维数组a[8][8]。
  

  (1)为二维数组中的数据赋50以内的随机数(程序模板中setdata()函数已经完成,利用产生随机数的系统函数实现),可能的取值如上图所示;
  (2)设计函数out()按行输出二维数组中的数据;
  (3)设计函数outDiagonal()输出从左上到右下对角线上的元素的值,如对图的数据而言,输出为48 34 12 31 40 42 34 45;再输出从右上到左下对角线上的值;
  (4)将此数组视为“扫雷”游戏的界面(实际上扫雷游戏的界面一般就用二维数组保存其界面),通过键盘输入一个位置,输出其周围八个格子中的数据,如输入2 2时,输出34 30 47 29 48 14 12 31(注意:一共八个,不包括该位置上的数)(参见图中的黄色部分),计算这些数的和并输出。另外,如果选择的位置在边缘或角上时,周围的格数不够八个,按实际个数输出。请用循环有规律地列举出来各个值,不要采用顺序结构逐个罗列。这项功能由函数mine()完成。
  (5)设计函数change()改变数组中的值。改变的规则是:从第2行(即a[1]行)开始到最后一行,每一元素是其正上方元素和右上方元素之和,例如a[1][0]取a[0][0]和a[0][1]之和,a[1][1]取a[0][1]和a[0][2]之和,……。对各行最后一列元素,其右上方无数据,取上一行中的第一个元素,如a[1][7]取a[0][7]和a[0][0]之和。对上图中的数据,a[1]行的  元素将依次为:50 27 41 30 33 63 60 64,a[2]行依次为77 68…114。
程序模板:

#include  <iostream>
#include <time.h>
using namespace std;
void setdata(int a[8][8]);  //设置随机数
void out(int a[8][8]);		//输出数组
void outDiagonal(int a[8][8]);  //输出对角线元素的值
void mine(int a[8][8],int x, int y);		//按“扫雷”游戏的规则输出相邻格子
void change(int a[8][8]); 				//按要求改变数值
int main()
{
	int a[8][8],x,y;
	setdata(a);
	out(a);  
	outDiagonal(a);
	cout<<"输入一个位置:";
	cin>>x>>y;
	mine(a,x,y);
	change(a);
	out(a);
	return 0;
}
void setdata(int a[8][8])
{
	int i,j;
	srand(time(NULL));//需要用当前时间作“种子”,以便每次运行取得的序列不同
	for(i=0;i<8;i++)
		for(j=0;j<8;j++)
			a[i][j]=rand()%50+1;
		return;
}
//按行序优先输出数组
void out(int a[8][8])
{
}
//输出对角线元素的值(从左上到右下、从右上到左下)
void outDiagonal(int a[8][8])
{
}
//按扫雷游戏规则,输出a[x][y]周围的8个数字
void mine(int a[8][8],int x, int y)
{
}
//按题目中所言规则更改元素的值
void change(int a[8][8])
{
}

【拓展-二维数组更多用处】这部分可以不去选择实践,看看、想想即可。
  中国象棋的棋盘也可以采用二维数组存储。
  (1)下棋程序需要体现相关的规则,例如,马走日。通过键盘输入一个位置,输出按“日”字型可以走到的所有位置,及其位置上的数值。例如,在项目6的图中,输入2 2时,输出(0,1,2)(0,3,16) (1,0,9) (1,4,12)……(项目6图中的背景有斜线的部分。可走到的位置一般为八个,位置在边缘或角上时,可能不够八个,按实际输出)。
  (2)马走日还有“别马腿”的规则。在任务4的图中,如果马腿位置上的数大于25,认为马腿被别了(实际游戏中,以该位置是否有棋子进行判断)。请在(1)的基础上考虑这一规则,只输出所有能走到的位置及数值。
  俄罗斯方块中的每一个小方块也用二维数组(一般4*4或8*8)表示,单色游戏数组元素用0、1即可,彩色的取值不限于0、1。对小方块的基本操作包括左旋、右旋、反转等操作。请针对上面的二维数组,实现左旋、右旋、反转等操作。
  JPEG是数字图像存储的国际标准。在JPEG编码规则中,其编码的基本单位是8*8的图像“块”,其中有一个环节叫“Z字型编码”,也即将一个8*8的“块”中数据按如图所示的方向取出,形成一个1*64的向量(可以保存在一个一维数组中)。请输出前面的8*8的数据块对应的向量。

  
  《线性代数》是工程数学的重要组成,在大二时开设,其中将涉及大量矩阵的运算,用于解决工程中的问题。在编程实现矩阵操作时,就是二维数组的操作。


附:部分词典,复制到词本中自建文件

b.c. (缩)公元前
b/l n.(缩)提单
baby n.婴儿,年龄最小的人
baby-sit v.(替人)看护小孩
baby-sitter n.看护小孩的人
bachelor n.单身汉,学士
back n.背;adj.背后的
backbone n.脊梁骨
backdate v.回溯
background n.背景,经历
backing n.倒退,支持物
backlog n.未交付的订货
backward adv.向后,逆
backwardness n.落后(状态)
bacon n.咸肉,熏肉
bacterium n.细菌
bad adj.坏的,低劣的
badge n.徽章
badly adv.坏,非常,严重地
badminton n.羽毛球
baffle v.困扰,难倒
bag n.袋子,提包
baggage n.行李
baggy adj.袋状的
bait n.饵,诱饵
bake v.烤,烘
baker n.面包师
bakery n.面包店
balance n.平衡,天平,余额
balcony n.阳台
bald adj.秃的
ball n.球,球状物,舞会
ballet n.芭蕾舞
balloon n.气球
ballooning n.热气球飞行运动
ball-point pen;n.圆珠笔
ballroom n.舞厅
bamboo n.竹
bamboo-shoot n.竹笋
banana n.香蕉
band n.乐队,带子;v.联合
bandage n.绷带
bandit n.盗匪,歹徒
bang n.,v.砰的一响
bank n.岸,银行
banker n.银行家
banking n.银行业务、金融业
bankrupt n.,v.,adj.破产
banner n.旗帜,横幅
banquet n.宴会
bar n.棒,杆,酒吧
barber n.理发师
bare adj.裸的,直率的
barely adv.赤裸裸地
bargain n.交易,便宜货
barge n.驳船
bark n.狗吠,树皮;v.吠
barn n.谷仓,牲口棚
barometer n.晴雨表,标记
baron n.男爵
baroness n.男爵夫人,女男爵
barrel n.桶,枪(炮)管
barren adj.不育的,贫瘠的
barrier n.障碍,壁垒
barter n.易货贸易
base n.基础,基地;v.基于
baseball n.棒球
basement n.地下室,地窖
basic adj.基本的,基础的
basically adv.基本上,主要地
basin n.盆,盆地
basis n.基础,根据
basket n.篮子,筐
basketball n.篮球
bat n.球拍,蝙蝠;v.击打
bath n.洗澡,浴室
bathe v.洗澡,冲洗
bathroom n.浴室,洗手间
batter v.打击
battery n.电池
battle n.战斗,战役
bay n.海湾,湾
bazaar n.集市
be v.是,存在
beach n.海滩,湖滨
bead n.有孔小珠
beak n.鸟嘴
beam n.梁,射线;v.发光
bean n.豆子
bear v.负担,忍受,生育
bearing n.举止,意义,轴承
bearish adj.熊市的
beast n.野兽,牲畜
beat v.打,击败;n.击打
beautiful adj.美丽的,绝妙的
beauty n.美,美女
because conj.因为,由于
become v.变成
bed n.床,河床,苗圃
bedroom n.卧室
bee n.蜜蜂
beef n.牛肉
beer n.啤酒
beetle n.甲虫
before prep.在...前面
beforehand adv.事先,预先
beg v.乞讨,恳求
beggar n.乞丐
begin v.开始,着手进行
beginner n.初学者
beginning n.开端,起点
behalf n.代表
behave v.行为,举动
behavior n.行为,举止
behind prep.在...后面
behindhand adj.落后,事后
being n.生物,存在
belief n.信仰,信心
believe v.相信,认为
bell n.钟,铃
belly n.肚子
belong v.属于
beloved adj.敬爱的;n.爱人
below adj.,prep.在...下面
belt n.带,腰带
bench n.长凳,工作台
bend v.弯曲,俯身;n.拐弯
beneath prep.在...之下
beneficial adj.有益的,有利的
beneficiary n.受益者
benefit n.益处,利益
benevolence n.慈悲,捐助
benevolent adj.乐善好施的
bent adj.弯曲的
berry n.浆果
beside prep.在...之旁
besides adj.而且;prep...之外
best adj.最好的
bestow v.赠给,授予
best-seller n.畅销书(货)
best-selling adj.畅销的
bet n.,v.打赌
betray v.背叛,泄露
betrayal n.背叛,暴露
better adj.更好的;adv.较好
better-off adj.经济情况较好的
between prep.在两者之间
beverage n.饮料
beware v.当心
bewilder v.迷惑,茫然
beyond prep.在...那边,超出
bias n.偏好
bible n.圣经
bicycle n.自行车
bid n.,v.报价,投标
bidding n.投标
big adj.大的,重大的
bike n.自行车
bill n.帐单,议案,钞票
billion n.十亿
bind v.捆绑,约束
binding n.装订
biographer n.传记记者
biography n.传记
biologist n.生物学家
biology n.生物学
bird n.鸟
birth n.出生,创始
birthday n.生日,诞辰
birthplace n.出生地
biscuit n.饼干
bishop n.主教
bit n.小片,一点
bite n.,v.咬,叮;n.一口
bitter adj.苦的,痛苦的
bitterly adv.惨痛地,辛酸地
bitterness n.苦味,苦难
black adj.黑的;n.黑色
blackboard n.黑板
blacksmith n.铁匠
blade n.刀刃,叶片
blame v.责备;n.过失
blank adj.空白的;n.空格
blanket n.毛毯
blast n.阵风;v.爆炸
blaze n.火光,光亮
bleach v.漂白,变白
bleed v.出血,流血
blend v.混合,掺混
bless v.保佑,祝福
blessing n.祝福
blind adj.瞎的;v.使失明
blink adj.眨眼,闪烁
block n.大块,街区,障碍物
blockage n.封锁
blond adj.金发的
blood n.血,血统
bloody adj.流血的,残忍的
bloom n.花;v.开花
blossom n.(果树的)花
blot n.污迹
blouse n.女衫
blow v.吹,吹掉,刮风
blue adj.蓝色的,忧郁的
blunder n.大错
blunt adj.钝的,生硬的
blush v.脸红,害臊
blushy adj.害羞的
board n.木板,伙食,董事会
boarding n.伙食
boast v.夸口,以...而自豪
boat n.小船,艇
body n.身体,尸体,团体
bodyguard n.保镖
boil v.沸腾,煮沸
boiler n.锅炉
boiling adj.沸腾的
bold adj.大胆的
boldness n.胆略
bolt n.螺检,插销;v.闩门
bomb n.炸弹;v.轰炸
bomber n.轰炸机
bonafide adj.真诚的,无欺的
bond n.束缚,联结,债券
bonded adj.保税的
bone n.骨,骨骼
bonus n.红利
bony adj.骨头的
book n.书;v.预订(票)
bookcase n.书橱
booking adj.定货
booklet n.小册子
bookshelf n.书架
bookstore n.书店
boom v.隆隆响,兴旺,繁荣
booming adj.兴旺的,繁荣的
boost v.抬高,促进
boot n.靴子
booth n.货摊,电话亭
border n.国界,边境
bore v.烦扰,使厌烦,钻孔
boring adj.讨厌的
born adj.出生的,天生的
borrow v.借,借用
borrowings n.借款
bosom n.胸,胸怀
boss n.上司,老板
bossy adj.好发号施令的
both pron.,adj.双方,两
bother v.打扰,麻烦;n.麻烦
bottle n.瓶子
bottle-neck n.影响...的环节
bottom n.底部,末尾
bottom-line n.末行数字,结果
bough n.大树枝
bounce v.跳起;n.跳跃
bound v.缚,以...为界
boundary n.界线,边界
bourgeois n.资产阶级分子
bow v.鞠躬,服从;n.弓
bowl n.碗,钵
bowling n.保龄球
box n.箱,盒;v.拳击
boxer n.拳击运动员
boxing n.拳击
boxing-day n.节礼日
boy n.男孩,小伙子
boycott v.,n.抵制
brace n.支撑;v.激励
bracket n.括号
brag v.吹嘘,夸口
brain n.脑子,头脑,智能
brake n.制动器;v.刹车
brake n.v.刹车
branch n.树枝,分支,分部
brand n.牌子,商标
brandy n.白兰地
brass n.黄铜
brave adj.勇敢的;v.冒着
bravely adv.勇敢地
bravery n.勇敢
brazil n.巴西
brazilian adj.,n.巴西的(人)
breach n.违反(契约)
bread n.面包,生计
bread-earner n.挣钱养家的人
breadth n.宽度,大量
break n.打破,破坏;n.裂口
breakage n.裂口
breakdown n.故障,衰竭
breakfast n.早饭
breakthrough n.突破
breast n.乳房,胸脯
breath n.呼吸,气息
breathe v.呼吸
breed v.繁殖,饲养;n.品种
breeze n.微风
bribe v.贿赂
bribery v.贿赂
brick n.砖
bride n.新娘
bridegroom n.新郎
bridge n.桥梁,桥牌
bridle n.约束;v.抑制
brief adj.简短的
briefing n.简要情况
briefly adv.简单地,简短地
bright adj.明亮的,鲜明的
brighten v.使发光
brightness n.光辉,明亮
brilliance n.辉煌,光彩
brilliant v.辉煌的,杰出的
brim n.边,边缘
bring v.拿来,带来
brink n.边缘
brisk adj.敏捷的,活跃的
bristle n.鬃毛
britain n.不列颠,英国
british adj.英国的,英属的
brittle adj.易碎的,脆的
broad adj.宽的,辽阔的
broadcast v.,n.广播
broadcasting n.广播节目
broaden v.加宽,扩大
brochure n.产品介绍手册
broken adj.破碎的,毁坏了的
broker n.经纪人
bronze n.青铜
brood n.一窝
brook n.小河,溪流
broom n.扫帚
brother n.兄弟,同胞
brotherhood n.兄弟情谊
brother-in-law n.姻兄(弟)
brow n.眉毛,额
brown n.,adj.褐色(的)
bruise n.青肿;v.打伤
brush n.刷子,画笔;v.刷
brutal adj.野蛮的
brute n.禽兽,畜生
bubble n.气泡
bucket n.水桶
bud n.芽,蓓蕾
buddhism n.佛教
buddhist n.佛教徒
budget n.预算
buffalo n.水牛,野牛
buffet n.冷餐
bug n.臭虫,虫子
bugle n.喇叭
build v.建造,建设
builder n.建筑工人,建设者
building n.建筑物,大楼
bulb n.球形物,灯泡
bulk n.体积,大半
bulky adj.庞大的,笨重的
bull n.公牛
bullet n.子弹
bulletin n.公报
bullion n.金块,金条
bullish adj.行情看涨的
bump v.碰,颠簸;n.碰撞
bumpy adj.颠簸不平的
bunch n.一束
bundle n.,v.捆,包
burden n.担子,负担
burdensome adj.沉重的
bureau n.局,司,办公室
bureaucracy n.官僚主义
bureaucratic adj.官僚主义的
burglar n.夜盗,窃贼
burglary n.盗窃
burial n.埋葬
burn v.烧,燃烧,烧伤
burner n.喷灯
burnt adj.烧焦的,烧坏的
burst v.,n.爆炸,破裂
bury v.掩埋,安葬
bus n.公共汽车
bush n.灌木
bushel n.蒲式耳(重量单位)
business n.行业,买卖,商号
businesslike adj.事务式的
busy adj.忙碌的,热闹的
but prep.但是,除了
butcher n.屠夫;v.屠宰
butchery n.肉食店
butt n.根端;v.顶撞
butter n.黄油
butterfly n.蝴蝶
button n.钮扣,按钮
buy v.买,购买
buyer n.购买者
buzz v.嗡嗡叫;n.嗡嗡声
by prep.在...旁边,按照
bygone n.已往的,过时的
bypass n.旁道,分路
by-product n.副产品

  


http://blog.csdn.net/sxhelijian/article/details/11890759

【项目1-折腾二维数组】创建一个长度为5行4列的二维整型数组,通过初始化,为数组中的前两列的10个元素赋初值,然后通过键盘输入,使后两列的10个元素获得值,将所有元素值乘以3后保存在数组中。输出数组时,按行序优先输出,再按列序优先输出(输出的第一行是数组中的第一列……,其实输出的就是“转置”),再将数组“倒”着输出(即最后一行最后一列的最先输出,第0行第0列的最后输出),再输出数组中的所有偶数,以及行列下标之和为3的倍数的元素值。
     提示:编程时,可以做一点,调一点,全写好再改会自讨苦吃。

  同时也给出参考的运行界面:

  
     报告模板及部分代码

/*
* 程序的版权和版本声明部分
* Copyright (c)2012, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: array.cpp                           
* 作    者:                            
* 完成日期:  年  月   日
* 版本号: v1.0      
* 输入描述:无
* 问题描述:定义二维数组,为数组赋初值、输入值、更改值、按各种方法输出
*/
#include <iostream>
using namespace std;
int main( )
{
	int i,j;
    //创建5行4列的二维整型数组,为数组中的前两列的10个元素赋初值
	int a[5][4]={{0,1},{4,5},{8,9},{12,13},{16,17}}; 


	//键盘输入使后两列10个元素的值
	cout<<"请输入10个整数:"<<endl;


	//按行序优先输出
	cout<<"数组中的值为:"<<endl;
	
	//将所有元素值乘以3后保存在数组中
	cout<<"现在将所有元素乘以3倍...";
	
	//按行序优先输出
	cout<<"行序优先输出:"<<endl;
		
	//按列序优先输出(输出的第一行是数组中的第一列……,其实输出的就是“转置”)
	cout<<"列序优先输出:"<<endl;
	
	//将数组“倒”着输出(即最后一行最后一列的最先输出,第0行第0列的最后输出)
	cout<<"倒着输出:"<<endl;


	//输出数组中的所有偶数
	cout<<"数组中的偶数:"<<endl;
	
	//输出所有行列下标之和为3的倍数的元素值
	cout<<"行列下标之和为3的倍数的元素:"<<endl;


	return 0;
}

补充:为了督促同学们学会与习惯使用单步调试工具,要求在报告中加一张图,图示在单步执行时,看到的数组a中各行各列的值。


【项目2-杨辉三角】编写程序,打印出以下形式的扬辉三角形。
1
1    1
1    2   1
1    3    3    1
1    4   6    4    1
1    5   10   10   5    1
1    6   15   20   15   6   1
  可以将杨辉三角形的值放在一个方形矩阵的下半三角中,如果需打印7行杨辉三角形,应该定义等于或大于7X7的方形矩阵,只是矩阵的上半部和其余部分并不使用。杨辉三角形具有如下特点:(1)第0列和对角线上的元素都为1。(2)除第0列和对角线上的元素以外,其它元素的值均为前一行上的同列元素和前一列元素之和。
  函数setdata按以上规律给数组元素置数,函数outdata输出杨辉三角形。

#include <iostream>  
using namespace std;  
int main()  
{  
  int a[7][7]={0};  
  setdata(a); //给数组赋值  
  outdata(a); //输出数组  
  return 0;
}  
void setdata(int a[7][7])  
{  
}  
void outdata(int a[7][7])  
{   
}  

【项目3-带姓名的成绩单】设score数组中存储同学们的C++成绩,增加一个数组string name[20]并赋初值,表示同学们的姓名。这两个数组中,同学的姓名与成绩的下标保持一致(例如name[1]和score[1]表示同一位同学的姓名和C++成绩)。请(1)输出按成绩排序后的同学的名单;(2)输出按同学姓名排序后的成绩单(排序对象是字符串)。提示:排序中交换score中的元素时,只要同时也交换name中的相应元素,就可以实现姓名和成绩的同步(如果交换成绩而不交换姓名,两者的对应关系就被破坏了。)



【项目4-多科成绩单】用二维数组score[][4]保存同学们的高数、英语、C++成绩及总成绩(在此假设学生的学号为整型的连续值,用数组的行下标作学号)。在此基础上,完成下面的操作:
(1)设计输入成绩的函数,输入3科成绩后可以自动求出总分,并将数据全保存到数组中;
(2)输出各门课及总分的最高成绩、最低成绩、平均成绩和成绩的标准偏差;
(3)输出考得总分最高、最低同学的人数及对应的学号。
要求:学生人数num在main()函数中输入,score[][4]数组也是main()函数的局部变量,最好将其他功能也设计成函数,使main()函数尽可能地简单。
【项目4扩展(选做)-带姓名的多科成绩单】增加用数组string name[]表示同学们的姓名,使姓名与成绩的下标保持一致(例如name[1]和score[1][0]、score[1][1]、score[1][2]和score[1][3]表示同一位同学的数据)。据此,将项目4中的第(3)项任务改为输出总分最高的同学的姓名。


【项目5-电子词典】:做一个简单的电子词典。在文件dictionary.txt中(本文后附了一部分(b打头的词)作为调试,校内同学到我的BB教学平台中找,校外人士感兴趣的告知我Email),保存的是英汉对照的一个词典,词汇量近8000个,英文与释义间用’\t’隔开。编程序,将文件中的内容读到两个数组e[]和c[]中,分别代表英文和中文,由用户输入英文词,显示中文意思。运行程序后,支持用户连续地查词典,直到输入“0000”结束,如下图:
      
  提示:文件中的词汇已经排序,故在查找时,用二分查找法提高效率。


【项目6-体会棋盘游戏中的数据存储】
  定义一个8行8列的二维数组a[8][8]。
  

  (1)为二维数组中的数据赋50以内的随机数(程序模板中setdata()函数已经完成,利用产生随机数的系统函数实现),可能的取值如上图所示;
  (2)设计函数out()按行输出二维数组中的数据;
  (3)设计函数outDiagonal()输出从左上到右下对角线上的元素的值,如对图的数据而言,输出为48 34 12 31 40 42 34 45;再输出从右上到左下对角线上的值;
  (4)将此数组视为“扫雷”游戏的界面(实际上扫雷游戏的界面一般就用二维数组保存其界面),通过键盘输入一个位置,输出其周围八个格子中的数据,如输入2 2时,输出34 30 47 29 48 14 12 31(注意:一共八个,不包括该位置上的数)(参见图中的黄色部分),计算这些数的和并输出。另外,如果选择的位置在边缘或角上时,周围的格数不够八个,按实际个数输出。请用循环有规律地列举出来各个值,不要采用顺序结构逐个罗列。这项功能由函数mine()完成。
  (5)设计函数change()改变数组中的值。改变的规则是:从第2行(即a[1]行)开始到最后一行,每一元素是其正上方元素和右上方元素之和,例如a[1][0]取a[0][0]和a[0][1]之和,a[1][1]取a[0][1]和a[0][2]之和,……。对各行最后一列元素,其右上方无数据,取上一行中的第一个元素,如a[1][7]取a[0][7]和a[0][0]之和。对上图中的数据,a[1]行的  元素将依次为:50 27 41 30 33 63 60 64,a[2]行依次为77 68…114。
程序模板:

#include  <iostream>
#include <time.h>
using namespace std;
void setdata(int a[8][8]);  //设置随机数
void out(int a[8][8]);		//输出数组
void outDiagonal(int a[8][8]);  //输出对角线元素的值
void mine(int a[8][8],int x, int y);		//按“扫雷”游戏的规则输出相邻格子
void change(int a[8][8]); 				//按要求改变数值
int main()
{
	int a[8][8],x,y;
	setdata(a);
	out(a);  
	outDiagonal(a);
	cout<<"输入一个位置:";
	cin>>x>>y;
	mine(a,x,y);
	change(a);
	out(a);
	return 0;
}
void setdata(int a[8][8])
{
	int i,j;
	srand(time(NULL));//需要用当前时间作“种子”,以便每次运行取得的序列不同
	for(i=0;i<8;i++)
		for(j=0;j<8;j++)
			a[i][j]=rand()%50+1;
		return;
}
//按行序优先输出数组
void out(int a[8][8])
{
}
//输出对角线元素的值(从左上到右下、从右上到左下)
void outDiagonal(int a[8][8])
{
}
//按扫雷游戏规则,输出a[x][y]周围的8个数字
void mine(int a[8][8],int x, int y)
{
}
//按题目中所言规则更改元素的值
void change(int a[8][8])
{
}

【拓展-二维数组更多用处】这部分可以不去选择实践,看看、想想即可。
  中国象棋的棋盘也可以采用二维数组存储。
  (1)下棋程序需要体现相关的规则,例如,马走日。通过键盘输入一个位置,输出按“日”字型可以走到的所有位置,及其位置上的数值。例如,在项目6的图中,输入2 2时,输出(0,1,2)(0,3,16) (1,0,9) (1,4,12)……(项目6图中的背景有斜线的部分。可走到的位置一般为八个,位置在边缘或角上时,可能不够八个,按实际输出)。
  (2)马走日还有“别马腿”的规则。在任务4的图中,如果马腿位置上的数大于25,认为马腿被别了(实际游戏中,以该位置是否有棋子进行判断)。请在(1)的基础上考虑这一规则,只输出所有能走到的位置及数值。
  俄罗斯方块中的每一个小方块也用二维数组(一般4*4或8*8)表示,单色游戏数组元素用0、1即可,彩色的取值不限于0、1。对小方块的基本操作包括左旋、右旋、反转等操作。请针对上面的二维数组,实现左旋、右旋、反转等操作。
  JPEG是数字图像存储的国际标准。在JPEG编码规则中,其编码的基本单位是8*8的图像“块”,其中有一个环节叫“Z字型编码”,也即将一个8*8的“块”中数据按如图所示的方向取出,形成一个1*64的向量(可以保存在一个一维数组中)。请输出前面的8*8的数据块对应的向量。

  
  《线性代数》是工程数学的重要组成,在大二时开设,其中将涉及大量矩阵的运算,用于解决工程中的问题。在编程实现矩阵操作时,就是二维数组的操作。


附:部分词典,复制到词本中自建文件

b.c. (缩)公元前
b/l n.(缩)提单
baby n.婴儿,年龄最小的人
baby-sit v.(替人)看护小孩
baby-sitter n.看护小孩的人
bachelor n.单身汉,学士
back n.背;adj.背后的
backbone n.脊梁骨
backdate v.回溯
background n.背景,经历
backing n.倒退,支持物
backlog n.未交付的订货
backward adv.向后,逆
backwardness n.落后(状态)
bacon n.咸肉,熏肉
bacterium n.细菌
bad adj.坏的,低劣的
badge n.徽章
badly adv.坏,非常,严重地
badminton n.羽毛球
baffle v.困扰,难倒
bag n.袋子,提包
baggage n.行李
baggy adj.袋状的
bait n.饵,诱饵
bake v.烤,烘
baker n.面包师
bakery n.面包店
balance n.平衡,天平,余额
balcony n.阳台
bald adj.秃的
ball n.球,球状物,舞会
ballet n.芭蕾舞
balloon n.气球
ballooning n.热气球飞行运动
ball-point pen;n.圆珠笔
ballroom n.舞厅
bamboo n.竹
bamboo-shoot n.竹笋
banana n.香蕉
band n.乐队,带子;v.联合
bandage n.绷带
bandit n.盗匪,歹徒
bang n.,v.砰的一响
bank n.岸,银行
banker n.银行家
banking n.银行业务、金融业
bankrupt n.,v.,adj.破产
banner n.旗帜,横幅
banquet n.宴会
bar n.棒,杆,酒吧
barber n.理发师
bare adj.裸的,直率的
barely adv.赤裸裸地
bargain n.交易,便宜货
barge n.驳船
bark n.狗吠,树皮;v.吠
barn n.谷仓,牲口棚
barometer n.晴雨表,标记
baron n.男爵
baroness n.男爵夫人,女男爵
barrel n.桶,枪(炮)管
barren adj.不育的,贫瘠的
barrier n.障碍,壁垒
barter n.易货贸易
base n.基础,基地;v.基于
baseball n.棒球
basement n.地下室,地窖
basic adj.基本的,基础的
basically adv.基本上,主要地
basin n.盆,盆地
basis n.基础,根据
basket n.篮子,筐
basketball n.篮球
bat n.球拍,蝙蝠;v.击打
bath n.洗澡,浴室
bathe v.洗澡,冲洗
bathroom n.浴室,洗手间
batter v.打击
battery n.电池
battle n.战斗,战役
bay n.海湾,湾
bazaar n.集市
be v.是,存在
beach n.海滩,湖滨
bead n.有孔小珠
beak n.鸟嘴
beam n.梁,射线;v.发光
bean n.豆子
bear v.负担,忍受,生育
bearing n.举止,意义,轴承
bearish adj.熊市的
beast n.野兽,牲畜
beat v.打,击败;n.击打
beautiful adj.美丽的,绝妙的
beauty n.美,美女
because conj.因为,由于
become v.变成
bed n.床,河床,苗圃
bedroom n.卧室
bee n.蜜蜂
beef n.牛肉
beer n.啤酒
beetle n.甲虫
before prep.在...前面
beforehand adv.事先,预先
beg v.乞讨,恳求
beggar n.乞丐
begin v.开始,着手进行
beginner n.初学者
beginning n.开端,起点
behalf n.代表
behave v.行为,举动
behavior n.行为,举止
behind prep.在...后面
behindhand adj.落后,事后
being n.生物,存在
belief n.信仰,信心
believe v.相信,认为
bell n.钟,铃
belly n.肚子
belong v.属于
beloved adj.敬爱的;n.爱人
below adj.,prep.在...下面
belt n.带,腰带
bench n.长凳,工作台
bend v.弯曲,俯身;n.拐弯
beneath prep.在...之下
beneficial adj.有益的,有利的
beneficiary n.受益者
benefit n.益处,利益
benevolence n.慈悲,捐助
benevolent adj.乐善好施的
bent adj.弯曲的
berry n.浆果
beside prep.在...之旁
besides adj.而且;prep...之外
best adj.最好的
bestow v.赠给,授予
best-seller n.畅销书(货)
best-selling adj.畅销的
bet n.,v.打赌
betray v.背叛,泄露
betrayal n.背叛,暴露
better adj.更好的;adv.较好
better-off adj.经济情况较好的
between prep.在两者之间
beverage n.饮料
beware v.当心
bewilder v.迷惑,茫然
beyond prep.在...那边,超出
bias n.偏好
bible n.圣经
bicycle n.自行车
bid n.,v.报价,投标
bidding n.投标
big adj.大的,重大的
bike n.自行车
bill n.帐单,议案,钞票
billion n.十亿
bind v.捆绑,约束
binding n.装订
biographer n.传记记者
biography n.传记
biologist n.生物学家
biology n.生物学
bird n.鸟
birth n.出生,创始
birthday n.生日,诞辰
birthplace n.出生地
biscuit n.饼干
bishop n.主教
bit n.小片,一点
bite n.,v.咬,叮;n.一口
bitter adj.苦的,痛苦的
bitterly adv.惨痛地,辛酸地
bitterness n.苦味,苦难
black adj.黑的;n.黑色
blackboard n.黑板
blacksmith n.铁匠
blade n.刀刃,叶片
blame v.责备;n.过失
blank adj.空白的;n.空格
blanket n.毛毯
blast n.阵风;v.爆炸
blaze n.火光,光亮
bleach v.漂白,变白
bleed v.出血,流血
blend v.混合,掺混
bless v.保佑,祝福
blessing n.祝福
blind adj.瞎的;v.使失明
blink adj.眨眼,闪烁
block n.大块,街区,障碍物
blockage n.封锁
blond adj.金发的
blood n.血,血统
bloody adj.流血的,残忍的
bloom n.花;v.开花
blossom n.(果树的)花
blot n.污迹
blouse n.女衫
blow v.吹,吹掉,刮风
blue adj.蓝色的,忧郁的
blunder n.大错
blunt adj.钝的,生硬的
blush v.脸红,害臊
blushy adj.害羞的
board n.木板,伙食,董事会
boarding n.伙食
boast v.夸口,以...而自豪
boat n.小船,艇
body n.身体,尸体,团体
bodyguard n.保镖
boil v.沸腾,煮沸
boiler n.锅炉
boiling adj.沸腾的
bold adj.大胆的
boldness n.胆略
bolt n.螺检,插销;v.闩门
bomb n.炸弹;v.轰炸
bomber n.轰炸机
bonafide adj.真诚的,无欺的
bond n.束缚,联结,债券
bonded adj.保税的
bone n.骨,骨骼
bonus n.红利
bony adj.骨头的
book n.书;v.预订(票)
bookcase n.书橱
booking adj.定货
booklet n.小册子
bookshelf n.书架
bookstore n.书店
boom v.隆隆响,兴旺,繁荣
booming adj.兴旺的,繁荣的
boost v.抬高,促进
boot n.靴子
booth n.货摊,电话亭
border n.国界,边境
bore v.烦扰,使厌烦,钻孔
boring adj.讨厌的
born adj.出生的,天生的
borrow v.借,借用
borrowings n.借款
bosom n.胸,胸怀
boss n.上司,老板
bossy adj.好发号施令的
both pron.,adj.双方,两
bother v.打扰,麻烦;n.麻烦
bottle n.瓶子
bottle-neck n.影响...的环节
bottom n.底部,末尾
bottom-line n.末行数字,结果
bough n.大树枝
bounce v.跳起;n.跳跃
bound v.缚,以...为界
boundary n.界线,边界
bourgeois n.资产阶级分子
bow v.鞠躬,服从;n.弓
bowl n.碗,钵
bowling n.保龄球
box n.箱,盒;v.拳击
boxer n.拳击运动员
boxing n.拳击
boxing-day n.节礼日
boy n.男孩,小伙子
boycott v.,n.抵制
brace n.支撑;v.激励
bracket n.括号
brag v.吹嘘,夸口
brain n.脑子,头脑,智能
brake n.制动器;v.刹车
brake n.v.刹车
branch n.树枝,分支,分部
brand n.牌子,商标
brandy n.白兰地
brass n.黄铜
brave adj.勇敢的;v.冒着
bravely adv.勇敢地
bravery n.勇敢
brazil n.巴西
brazilian adj.,n.巴西的(人)
breach n.违反(契约)
bread n.面包,生计
bread-earner n.挣钱养家的人
breadth n.宽度,大量
break n.打破,破坏;n.裂口
breakage n.裂口
breakdown n.故障,衰竭
breakfast n.早饭
breakthrough n.突破
breast n.乳房,胸脯
breath n.呼吸,气息
breathe v.呼吸
breed v.繁殖,饲养;n.品种
breeze n.微风
bribe v.贿赂
bribery v.贿赂
brick n.砖
bride n.新娘
bridegroom n.新郎
bridge n.桥梁,桥牌
bridle n.约束;v.抑制
brief adj.简短的
briefing n.简要情况
briefly adv.简单地,简短地
bright adj.明亮的,鲜明的
brighten v.使发光
brightness n.光辉,明亮
brilliance n.辉煌,光彩
brilliant v.辉煌的,杰出的
brim n.边,边缘
bring v.拿来,带来
brink n.边缘
brisk adj.敏捷的,活跃的
bristle n.鬃毛
britain n.不列颠,英国
british adj.英国的,英属的
brittle adj.易碎的,脆的
broad adj.宽的,辽阔的
broadcast v.,n.广播
broadcasting n.广播节目
broaden v.加宽,扩大
brochure n.产品介绍手册
broken adj.破碎的,毁坏了的
broker n.经纪人
bronze n.青铜
brood n.一窝
brook n.小河,溪流
broom n.扫帚
brother n.兄弟,同胞
brotherhood n.兄弟情谊
brother-in-law n.姻兄(弟)
brow n.眉毛,额
brown n.,adj.褐色(的)
bruise n.青肿;v.打伤
brush n.刷子,画笔;v.刷
brutal adj.野蛮的
brute n.禽兽,畜生
bubble n.气泡
bucket n.水桶
bud n.芽,蓓蕾
buddhism n.佛教
buddhist n.佛教徒
budget n.预算
buffalo n.水牛,野牛
buffet n.冷餐
bug n.臭虫,虫子
bugle n.喇叭
build v.建造,建设
builder n.建筑工人,建设者
building n.建筑物,大楼
bulb n.球形物,灯泡
bulk n.体积,大半
bulky adj.庞大的,笨重的
bull n.公牛
bullet n.子弹
bulletin n.公报
bullion n.金块,金条
bullish adj.行情看涨的
bump v.碰,颠簸;n.碰撞
bumpy adj.颠簸不平的
bunch n.一束
bundle n.,v.捆,包
burden n.担子,负担
burdensome adj.沉重的
bureau n.局,司,办公室
bureaucracy n.官僚主义
bureaucratic adj.官僚主义的
burglar n.夜盗,窃贼
burglary n.盗窃
burial n.埋葬
burn v.烧,燃烧,烧伤
burner n.喷灯
burnt adj.烧焦的,烧坏的
burst v.,n.爆炸,破裂
bury v.掩埋,安葬
bus n.公共汽车
bush n.灌木
bushel n.蒲式耳(重量单位)
business n.行业,买卖,商号
businesslike adj.事务式的
busy adj.忙碌的,热闹的
but prep.但是,除了
butcher n.屠夫;v.屠宰
butchery n.肉食店
butt n.根端;v.顶撞
butter n.黄油
butterfly n.蝴蝶
button n.钮扣,按钮
buy v.买,购买
buyer n.购买者
buzz v.嗡嗡叫;n.嗡嗡声
by prep.在...旁边,按照
bygone n.已往的,过时的
bypass n.旁道,分路
by-product n.副产品

  


http://blog.csdn.net/sxhelijian/article/details/11890759


【项目1-折腾二维数组】创建一个长度为5行4列的二维整型数组,通过初始化,为数组中的前两列的10个元素赋初值,然后通过键盘输入,使后两列的10个元素获得值,将所有元素值乘以3后保存在数组中。输出数组时,按行序优先输出,再按列序优先输出(输出的第一行是数组中的第一列……,其实输出的就是“转置”),再将数组“倒”着输出(即最后一行最后一列的最先输出,第0行第0列的最后输出),再输出数组中的所有偶数,以及行列下标之和为3的倍数的元素值。
     提示:编程时,可以做一点,调一点,全写好再改会自讨苦吃。

  同时也给出参考的运行界面:

  
     报告模板及部分代码

/*
* 程序的版权和版本声明部分
* Copyright (c)2012, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: array.cpp                           
* 作    者:                            
* 完成日期:  年  月   日
* 版本号: v1.0      
* 输入描述:无
* 问题描述:定义二维数组,为数组赋初值、输入值、更改值、按各种方法输出
*/
#include <iostream>
using namespace std;
int main( )
{
	int i,j;
    //创建5行4列的二维整型数组,为数组中的前两列的10个元素赋初值
	int a[5][4]={{0,1},{4,5},{8,9},{12,13},{16,17}}; 


	//键盘输入使后两列10个元素的值
	cout<<"请输入10个整数:"<<endl;


	//按行序优先输出
	cout<<"数组中的值为:"<<endl;
	
	//将所有元素值乘以3后保存在数组中
	cout<<"现在将所有元素乘以3倍...";
	
	//按行序优先输出
	cout<<"行序优先输出:"<<endl;
		
	//按列序优先输出(输出的第一行是数组中的第一列……,其实输出的就是“转置”)
	cout<<"列序优先输出:"<<endl;
	
	//将数组“倒”着输出(即最后一行最后一列的最先输出,第0行第0列的最后输出)
	cout<<"倒着输出:"<<endl;


	//输出数组中的所有偶数
	cout<<"数组中的偶数:"<<endl;
	
	//输出所有行列下标之和为3的倍数的元素值
	cout<<"行列下标之和为3的倍数的元素:"<<endl;


	return 0;
}

补充:为了督促同学们学会与习惯使用单步调试工具,要求在报告中加一张图,图示在单步执行时,看到的数组a中各行各列的值。


【项目2-杨辉三角】编写程序,打印出以下形式的扬辉三角形。
1
1    1
1    2   1
1    3    3    1
1    4   6    4    1
1    5   10   10   5    1
1    6   15   20   15   6   1
  可以将杨辉三角形的值放在一个方形矩阵的下半三角中,如果需打印7行杨辉三角形,应该定义等于或大于7X7的方形矩阵,只是矩阵的上半部和其余部分并不使用。杨辉三角形具有如下特点:(1)第0列和对角线上的元素都为1。(2)除第0列和对角线上的元素以外,其它元素的值均为前一行上的同列元素和前一列元素之和。
  函数setdata按以上规律给数组元素置数,函数outdata输出杨辉三角形。

#include <iostream>  
using namespace std;  
int main()  
{  
  int a[7][7]={0};  
  setdata(a); //给数组赋值  
  outdata(a); //输出数组  
  return 0;
}  
void setdata(int a[7][7])  
{  
}  
void outdata(int a[7][7])  
{   
}  

【项目3-带姓名的成绩单】设score数组中存储同学们的C++成绩,增加一个数组string name[20]并赋初值,表示同学们的姓名。这两个数组中,同学的姓名与成绩的下标保持一致(例如name[1]和score[1]表示同一位同学的姓名和C++成绩)。请(1)输出按成绩排序后的同学的名单;(2)输出按同学姓名排序后的成绩单(排序对象是字符串)。提示:排序中交换score中的元素时,只要同时也交换name中的相应元素,就可以实现姓名和成绩的同步(如果交换成绩而不交换姓名,两者的对应关系就被破坏了。)



【项目4-多科成绩单】用二维数组score[][4]保存同学们的高数、英语、C++成绩及总成绩(在此假设学生的学号为整型的连续值,用数组的行下标作学号)。在此基础上,完成下面的操作:
(1)设计输入成绩的函数,输入3科成绩后可以自动求出总分,并将数据全保存到数组中;
(2)输出各门课及总分的最高成绩、最低成绩、平均成绩和成绩的标准偏差;
(3)输出考得总分最高、最低同学的人数及对应的学号。
要求:学生人数num在main()函数中输入,score[][4]数组也是main()函数的局部变量,最好将其他功能也设计成函数,使main()函数尽可能地简单。
【项目4扩展(选做)-带姓名的多科成绩单】增加用数组string name[]表示同学们的姓名,使姓名与成绩的下标保持一致(例如name[1]和score[1][0]、score[1][1]、score[1][2]和score[1][3]表示同一位同学的数据)。据此,将项目4中的第(3)项任务改为输出总分最高的同学的姓名。


【项目5-电子词典】:做一个简单的电子词典。在文件dictionary.txt中(本文后附了一部分(b打头的词)作为调试,校内同学到我的BB教学平台中找,校外人士感兴趣的告知我Email),保存的是英汉对照的一个词典,词汇量近8000个,英文与释义间用’\t’隔开。编程序,将文件中的内容读到两个数组e[]和c[]中,分别代表英文和中文,由用户输入英文词,显示中文意思。运行程序后,支持用户连续地查词典,直到输入“0000”结束,如下图:
      
  提示:文件中的词汇已经排序,故在查找时,用二分查找法提高效率。


【项目6-体会棋盘游戏中的数据存储】
  定义一个8行8列的二维数组a[8][8]。
  

  (1)为二维数组中的数据赋50以内的随机数(程序模板中setdata()函数已经完成,利用产生随机数的系统函数实现),可能的取值如上图所示;
  (2)设计函数out()按行输出二维数组中的数据;
  (3)设计函数outDiagonal()输出从左上到右下对角线上的元素的值,如对图的数据而言,输出为48 34 12 31 40 42 34 45;再输出从右上到左下对角线上的值;
  (4)将此数组视为“扫雷”游戏的界面(实际上扫雷游戏的界面一般就用二维数组保存其界面),通过键盘输入一个位置,输出其周围八个格子中的数据,如输入2 2时,输出34 30 47 29 48 14 12 31(注意:一共八个,不包括该位置上的数)(参见图中的黄色部分),计算这些数的和并输出。另外,如果选择的位置在边缘或角上时,周围的格数不够八个,按实际个数输出。请用循环有规律地列举出来各个值,不要采用顺序结构逐个罗列。这项功能由函数mine()完成。
  (5)设计函数change()改变数组中的值。改变的规则是:从第2行(即a[1]行)开始到最后一行,每一元素是其正上方元素和右上方元素之和,例如a[1][0]取a[0][0]和a[0][1]之和,a[1][1]取a[0][1]和a[0][2]之和,……。对各行最后一列元素,其右上方无数据,取上一行中的第一个元素,如a[1][7]取a[0][7]和a[0][0]之和。对上图中的数据,a[1]行的  元素将依次为:50 27 41 30 33 63 60 64,a[2]行依次为77 68…114。
程序模板:

#include  <iostream>
#include <time.h>
using namespace std;
void setdata(int a[8][8]);  //设置随机数
void out(int a[8][8]);		//输出数组
void outDiagonal(int a[8][8]);  //输出对角线元素的值
void mine(int a[8][8],int x, int y);		//按“扫雷”游戏的规则输出相邻格子
void change(int a[8][8]); 				//按要求改变数值
int main()
{
	int a[8][8],x,y;
	setdata(a);
	out(a);  
	outDiagonal(a);
	cout<<"输入一个位置:";
	cin>>x>>y;
	mine(a,x,y);
	change(a);
	out(a);
	return 0;
}
void setdata(int a[8][8])
{
	int i,j;
	srand(time(NULL));//需要用当前时间作“种子”,以便每次运行取得的序列不同
	for(i=0;i<8;i++)
		for(j=0;j<8;j++)
			a[i][j]=rand()%50+1;
		return;
}
//按行序优先输出数组
void out(int a[8][8])
{
}
//输出对角线元素的值(从左上到右下、从右上到左下)
void outDiagonal(int a[8][8])
{
}
//按扫雷游戏规则,输出a[x][y]周围的8个数字
void mine(int a[8][8],int x, int y)
{
}
//按题目中所言规则更改元素的值
void change(int a[8][8])
{
}

【拓展-二维数组更多用处】这部分可以不去选择实践,看看、想想即可。
  中国象棋的棋盘也可以采用二维数组存储。
  (1)下棋程序需要体现相关的规则,例如,马走日。通过键盘输入一个位置,输出按“日”字型可以走到的所有位置,及其位置上的数值。例如,在项目6的图中,输入2 2时,输出(0,1,2)(0,3,16) (1,0,9) (1,4,12)……(项目6图中的背景有斜线的部分。可走到的位置一般为八个,位置在边缘或角上时,可能不够八个,按实际输出)。
  (2)马走日还有“别马腿”的规则。在任务4的图中,如果马腿位置上的数大于25,认为马腿被别了(实际游戏中,以该位置是否有棋子进行判断)。请在(1)的基础上考虑这一规则,只输出所有能走到的位置及数值。
  俄罗斯方块中的每一个小方块也用二维数组(一般4*4或8*8)表示,单色游戏数组元素用0、1即可,彩色的取值不限于0、1。对小方块的基本操作包括左旋、右旋、反转等操作。请针对上面的二维数组,实现左旋、右旋、反转等操作。
  JPEG是数字图像存储的国际标准。在JPEG编码规则中,其编码的基本单位是8*8的图像“块”,其中有一个环节叫“Z字型编码”,也即将一个8*8的“块”中数据按如图所示的方向取出,形成一个1*64的向量(可以保存在一个一维数组中)。请输出前面的8*8的数据块对应的向量。

  
  《线性代数》是工程数学的重要组成,在大二时开设,其中将涉及大量矩阵的运算,用于解决工程中的问题。在编程实现矩阵操作时,就是二维数组的操作。


附:部分词典,复制到词本中自建文件

b.c. (缩)公元前
b/l n.(缩)提单
baby n.婴儿,年龄最小的人
baby-sit v.(替人)看护小孩
baby-sitter n.看护小孩的人
bachelor n.单身汉,学士
back n.背;adj.背后的
backbone n.脊梁骨
backdate v.回溯
background n.背景,经历
backing n.倒退,支持物
backlog n.未交付的订货
backward adv.向后,逆
backwardness n.落后(状态)
bacon n.咸肉,熏肉
bacterium n.细菌
bad adj.坏的,低劣的
badge n.徽章
badly adv.坏,非常,严重地
badminton n.羽毛球
baffle v.困扰,难倒
bag n.袋子,提包
baggage n.行李
baggy adj.袋状的
bait n.饵,诱饵
bake v.烤,烘
baker n.面包师
bakery n.面包店
balance n.平衡,天平,余额
balcony n.阳台
bald adj.秃的
ball n.球,球状物,舞会
ballet n.芭蕾舞
balloon n.气球
ballooning n.热气球飞行运动
ball-point pen;n.圆珠笔
ballroom n.舞厅
bamboo n.竹
bamboo-shoot n.竹笋
banana n.香蕉
band n.乐队,带子;v.联合
bandage n.绷带
bandit n.盗匪,歹徒
bang n.,v.砰的一响
bank n.岸,银行
banker n.银行家
banking n.银行业务、金融业
bankrupt n.,v.,adj.破产
banner n.旗帜,横幅
banquet n.宴会
bar n.棒,杆,酒吧
barber n.理发师
bare adj.裸的,直率的
barely adv.赤裸裸地
bargain n.交易,便宜货
barge n.驳船
bark n.狗吠,树皮;v.吠
barn n.谷仓,牲口棚
barometer n.晴雨表,标记
baron n.男爵
baroness n.男爵夫人,女男爵
barrel n.桶,枪(炮)管
barren adj.不育的,贫瘠的
barrier n.障碍,壁垒
barter n.易货贸易
base n.基础,基地;v.基于
baseball n.棒球
basement n.地下室,地窖
basic adj.基本的,基础的
basically adv.基本上,主要地
basin n.盆,盆地
basis n.基础,根据
basket n.篮子,筐
basketball n.篮球
bat n.球拍,蝙蝠;v.击打
bath n.洗澡,浴室
bathe v.洗澡,冲洗
bathroom n.浴室,洗手间
batter v.打击
battery n.电池
battle n.战斗,战役
bay n.海湾,湾
bazaar n.集市
be v.是,存在
beach n.海滩,湖滨
bead n.有孔小珠
beak n.鸟嘴
beam n.梁,射线;v.发光
bean n.豆子
bear v.负担,忍受,生育
bearing n.举止,意义,轴承
bearish adj.熊市的
beast n.野兽,牲畜
beat v.打,击败;n.击打
beautiful adj.美丽的,绝妙的
beauty n.美,美女
because conj.因为,由于
become v.变成
bed n.床,河床,苗圃
bedroom n.卧室
bee n.蜜蜂
beef n.牛肉
beer n.啤酒
beetle n.甲虫
before prep.在...前面
beforehand adv.事先,预先
beg v.乞讨,恳求
beggar n.乞丐
begin v.开始,着手进行
beginner n.初学者
beginning n.开端,起点
behalf n.代表
behave v.行为,举动
behavior n.行为,举止
behind prep.在...后面
behindhand adj.落后,事后
being n.生物,存在
belief n.信仰,信心
believe v.相信,认为
bell n.钟,铃
belly n.肚子
belong v.属于
beloved adj.敬爱的;n.爱人
below adj.,prep.在...下面
belt n.带,腰带
bench n.长凳,工作台
bend v.弯曲,俯身;n.拐弯
beneath prep.在...之下
beneficial adj.有益的,有利的
beneficiary n.受益者
benefit n.益处,利益
benevolence n.慈悲,捐助
benevolent adj.乐善好施的
bent adj.弯曲的
berry n.浆果
beside prep.在...之旁
besides adj.而且;prep...之外
best adj.最好的
bestow v.赠给,授予
best-seller n.畅销书(货)
best-selling adj.畅销的
bet n.,v.打赌
betray v.背叛,泄露
betrayal n.背叛,暴露
better adj.更好的;adv.较好
better-off adj.经济情况较好的
between prep.在两者之间
beverage n.饮料
beware v.当心
bewilder v.迷惑,茫然
beyond prep.在...那边,超出
bias n.偏好
bible n.圣经
bicycle n.自行车
bid n.,v.报价,投标
bidding n.投标
big adj.大的,重大的
bike n.自行车
bill n.帐单,议案,钞票
billion n.十亿
bind v.捆绑,约束
binding n.装订
biographer n.传记记者
biography n.传记
biologist n.生物学家
biology n.生物学
bird n.鸟
birth n.出生,创始
birthday n.生日,诞辰
birthplace n.出生地
biscuit n.饼干
bishop n.主教
bit n.小片,一点
bite n.,v.咬,叮;n.一口
bitter adj.苦的,痛苦的
bitterly adv.惨痛地,辛酸地
bitterness n.苦味,苦难
black adj.黑的;n.黑色
blackboard n.黑板
blacksmith n.铁匠
blade n.刀刃,叶片
blame v.责备;n.过失
blank adj.空白的;n.空格
blanket n.毛毯
blast n.阵风;v.爆炸
blaze n.火光,光亮
bleach v.漂白,变白
bleed v.出血,流血
blend v.混合,掺混
bless v.保佑,祝福
blessing n.祝福
blind adj.瞎的;v.使失明
blink adj.眨眼,闪烁
block n.大块,街区,障碍物
blockage n.封锁
blond adj.金发的
blood n.血,血统
bloody adj.流血的,残忍的
bloom n.花;v.开花
blossom n.(果树的)花
blot n.污迹
blouse n.女衫
blow v.吹,吹掉,刮风
blue adj.蓝色的,忧郁的
blunder n.大错
blunt adj.钝的,生硬的
blush v.脸红,害臊
blushy adj.害羞的
board n.木板,伙食,董事会
boarding n.伙食
boast v.夸口,以...而自豪
boat n.小船,艇
body n.身体,尸体,团体
bodyguard n.保镖
boil v.沸腾,煮沸
boiler n.锅炉
boiling adj.沸腾的
bold adj.大胆的
boldness n.胆略
bolt n.螺检,插销;v.闩门
bomb n.炸弹;v.轰炸
bomber n.轰炸机
bonafide adj.真诚的,无欺的
bond n.束缚,联结,债券
bonded adj.保税的
bone n.骨,骨骼
bonus n.红利
bony adj.骨头的
book n.书;v.预订(票)
bookcase n.书橱
booking adj.定货
booklet n.小册子
bookshelf n.书架
bookstore n.书店
boom v.隆隆响,兴旺,繁荣
booming adj.兴旺的,繁荣的
boost v.抬高,促进
boot n.靴子
booth n.货摊,电话亭
border n.国界,边境
bore v.烦扰,使厌烦,钻孔
boring adj.讨厌的
born adj.出生的,天生的
borrow v.借,借用
borrowings n.借款
bosom n.胸,胸怀
boss n.上司,老板
bossy adj.好发号施令的
both pron.,adj.双方,两
bother v.打扰,麻烦;n.麻烦
bottle n.瓶子
bottle-neck n.影响...的环节
bottom n.底部,末尾
bottom-line n.末行数字,结果
bough n.大树枝
bounce v.跳起;n.跳跃
bound v.缚,以...为界
boundary n.界线,边界
bourgeois n.资产阶级分子
bow v.鞠躬,服从;n.弓
bowl n.碗,钵
bowling n.保龄球
box n.箱,盒;v.拳击
boxer n.拳击运动员
boxing n.拳击
boxing-day n.节礼日
boy n.男孩,小伙子
boycott v.,n.抵制
brace n.支撑;v.激励
bracket n.括号
brag v.吹嘘,夸口
brain n.脑子,头脑,智能
brake n.制动器;v.刹车
brake n.v.刹车
branch n.树枝,分支,分部
brand n.牌子,商标
brandy n.白兰地
brass n.黄铜
brave adj.勇敢的;v.冒着
bravely adv.勇敢地
bravery n.勇敢
brazil n.巴西
brazilian adj.,n.巴西的(人)
breach n.违反(契约)
bread n.面包,生计
bread-earner n.挣钱养家的人
breadth n.宽度,大量
break n.打破,破坏;n.裂口
breakage n.裂口
breakdown n.故障,衰竭
breakfast n.早饭
breakthrough n.突破
breast n.乳房,胸脯
breath n.呼吸,气息
breathe v.呼吸
breed v.繁殖,饲养;n.品种
breeze n.微风
bribe v.贿赂
bribery v.贿赂
brick n.砖
bride n.新娘
bridegroom n.新郎
bridge n.桥梁,桥牌
bridle n.约束;v.抑制
brief adj.简短的
briefing n.简要情况
briefly adv.简单地,简短地
bright adj.明亮的,鲜明的
brighten v.使发光
brightness n.光辉,明亮
brilliance n.辉煌,光彩
brilliant v.辉煌的,杰出的
brim n.边,边缘
bring v.拿来,带来
brink n.边缘
brisk adj.敏捷的,活跃的
bristle n.鬃毛
britain n.不列颠,英国
british adj.英国的,英属的
brittle adj.易碎的,脆的
broad adj.宽的,辽阔的
broadcast v.,n.广播
broadcasting n.广播节目
broaden v.加宽,扩大
brochure n.产品介绍手册
broken adj.破碎的,毁坏了的
broker n.经纪人
bronze n.青铜
brood n.一窝
brook n.小河,溪流
broom n.扫帚
brother n.兄弟,同胞
brotherhood n.兄弟情谊
brother-in-law n.姻兄(弟)
brow n.眉毛,额
brown n.,adj.褐色(的)
bruise n.青肿;v.打伤
brush n.刷子,画笔;v.刷
brutal adj.野蛮的
brute n.禽兽,畜生
bubble n.气泡
bucket n.水桶
bud n.芽,蓓蕾
buddhism n.佛教
buddhist n.佛教徒
budget n.预算
buffalo n.水牛,野牛
buffet n.冷餐
bug n.臭虫,虫子
bugle n.喇叭
build v.建造,建设
builder n.建筑工人,建设者
building n.建筑物,大楼
bulb n.球形物,灯泡
bulk n.体积,大半
bulky adj.庞大的,笨重的
bull n.公牛
bullet n.子弹
bulletin n.公报
bullion n.金块,金条
bullish adj.行情看涨的
bump v.碰,颠簸;n.碰撞
bumpy adj.颠簸不平的
bunch n.一束
bundle n.,v.捆,包
burden n.担子,负担
burdensome adj.沉重的
bureau n.局,司,办公室
bureaucracy n.官僚主义
bureaucratic adj.官僚主义的
burglar n.夜盗,窃贼
burglary n.盗窃
burial n.埋葬
burn v.烧,燃烧,烧伤
burner n.喷灯
burnt adj.烧焦的,烧坏的
burst v.,n.爆炸,破裂
bury v.掩埋,安葬
bus n.公共汽车
bush n.灌木
bushel n.蒲式耳(重量单位)
business n.行业,买卖,商号
businesslike adj.事务式的
busy adj.忙碌的,热闹的
but prep.但是,除了
butcher n.屠夫;v.屠宰
butchery n.肉食店
butt n.根端;v.顶撞
butter n.黄油
butterfly n.蝴蝶
button n.钮扣,按钮
buy v.买,购买
buyer n.购买者
buzz v.嗡嗡叫;n.嗡嗡声
by prep.在...旁边,按照
bygone n.已往的,过时的
bypass n.旁道,分路
by-product n.副产品

  


http://blog.csdn.net/sxhelijian/article/details/11890759


【项目1-折腾二维数组】创建一个长度为5行4列的二维整型数组,通过初始化,为数组中的前两列的10个元素赋初值,然后通过键盘输入,使后两列的10个元素获得值,将所有元素值乘以3后保存在数组中。输出数组时,按行序优先输出,再按列序优先输出(输出的第一行是数组中的第一列……,其实输出的就是“转置”),再将数组“倒”着输出(即最后一行最后一列的最先输出,第0行第0列的最后输出),再输出数组中的所有偶数,以及行列下标之和为3的倍数的元素值。
     提示:编程时,可以做一点,调一点,全写好再改会自讨苦吃。

  同时也给出参考的运行界面:

  
     报告模板及部分代码

/*
* 程序的版权和版本声明部分
* Copyright (c)2012, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: array.cpp                           
* 作    者:                            
* 完成日期:  年  月   日
* 版本号: v1.0      
* 输入描述:无
* 问题描述:定义二维数组,为数组赋初值、输入值、更改值、按各种方法输出
*/
#include <iostream>
using namespace std;
int main( )
{
	int i,j;
    //创建5行4列的二维整型数组,为数组中的前两列的10个元素赋初值
	int a[5][4]={{0,1},{4,5},{8,9},{12,13},{16,17}}; 


	//键盘输入使后两列10个元素的值
	cout<<"请输入10个整数:"<<endl;


	//按行序优先输出
	cout<<"数组中的值为:"<<endl;
	
	//将所有元素值乘以3后保存在数组中
	cout<<"现在将所有元素乘以3倍...";
	
	//按行序优先输出
	cout<<"行序优先输出:"<<endl;
		
	//按列序优先输出(输出的第一行是数组中的第一列……,其实输出的就是“转置”)
	cout<<"列序优先输出:"<<endl;
	
	//将数组“倒”着输出(即最后一行最后一列的最先输出,第0行第0列的最后输出)
	cout<<"倒着输出:"<<endl;


	//输出数组中的所有偶数
	cout<<"数组中的偶数:"<<endl;
	
	//输出所有行列下标之和为3的倍数的元素值
	cout<<"行列下标之和为3的倍数的元素:"<<endl;


	return 0;
}

补充:为了督促同学们学会与习惯使用单步调试工具,要求在报告中加一张图,图示在单步执行时,看到的数组a中各行各列的值。


【项目2-杨辉三角】编写程序,打印出以下形式的扬辉三角形。
1
1    1
1    2   1
1    3    3    1
1    4   6    4    1
1    5   10   10   5    1
1    6   15   20   15   6   1
  可以将杨辉三角形的值放在一个方形矩阵的下半三角中,如果需打印7行杨辉三角形,应该定义等于或大于7X7的方形矩阵,只是矩阵的上半部和其余部分并不使用。杨辉三角形具有如下特点:(1)第0列和对角线上的元素都为1。(2)除第0列和对角线上的元素以外,其它元素的值均为前一行上的同列元素和前一列元素之和。
  函数setdata按以上规律给数组元素置数,函数outdata输出杨辉三角形。

#include <iostream>  
using namespace std;  
int main()  
{  
  int a[7][7]={0};  
  setdata(a); //给数组赋值  
  outdata(a); //输出数组  
  return 0;
}  
void setdata(int a[7][7])  
{  
}  
void outdata(int a[7][7])  
{   
}  

【项目3-带姓名的成绩单】设score数组中存储同学们的C++成绩,增加一个数组string name[20]并赋初值,表示同学们的姓名。这两个数组中,同学的姓名与成绩的下标保持一致(例如name[1]和score[1]表示同一位同学的姓名和C++成绩)。请(1)输出按成绩排序后的同学的名单;(2)输出按同学姓名排序后的成绩单(排序对象是字符串)。提示:排序中交换score中的元素时,只要同时也交换name中的相应元素,就可以实现姓名和成绩的同步(如果交换成绩而不交换姓名,两者的对应关系就被破坏了。)



【项目4-多科成绩单】用二维数组score[][4]保存同学们的高数、英语、C++成绩及总成绩(在此假设学生的学号为整型的连续值,用数组的行下标作学号)。在此基础上,完成下面的操作:
(1)设计输入成绩的函数,输入3科成绩后可以自动求出总分,并将数据全保存到数组中;
(2)输出各门课及总分的最高成绩、最低成绩、平均成绩和成绩的标准偏差;
(3)输出考得总分最高、最低同学的人数及对应的学号。
要求:学生人数num在main()函数中输入,score[][4]数组也是main()函数的局部变量,最好将其他功能也设计成函数,使main()函数尽可能地简单。
【项目4扩展(选做)-带姓名的多科成绩单】增加用数组string name[]表示同学们的姓名,使姓名与成绩的下标保持一致(例如name[1]和score[1][0]、score[1][1]、score[1][2]和score[1][3]表示同一位同学的数据)。据此,将项目4中的第(3)项任务改为输出总分最高的同学的姓名。


【项目5-电子词典】:做一个简单的电子词典。在文件dictionary.txt中(本文后附了一部分(b打头的词)作为调试,校内同学到我的BB教学平台中找,校外人士感兴趣的告知我Email),保存的是英汉对照的一个词典,词汇量近8000个,英文与释义间用’\t’隔开。编程序,将文件中的内容读到两个数组e[]和c[]中,分别代表英文和中文,由用户输入英文词,显示中文意思。运行程序后,支持用户连续地查词典,直到输入“0000”结束,如下图:
      
  提示:文件中的词汇已经排序,故在查找时,用二分查找法提高效率。


【项目6-体会棋盘游戏中的数据存储】
  定义一个8行8列的二维数组a[8][8]。
  

  (1)为二维数组中的数据赋50以内的随机数(程序模板中setdata()函数已经完成,利用产生随机数的系统函数实现),可能的取值如上图所示;
  (2)设计函数out()按行输出二维数组中的数据;
  (3)设计函数outDiagonal()输出从左上到右下对角线上的元素的值,如对图的数据而言,输出为48 34 12 31 40 42 34 45;再输出从右上到左下对角线上的值;
  (4)将此数组视为“扫雷”游戏的界面(实际上扫雷游戏的界面一般就用二维数组保存其界面),通过键盘输入一个位置,输出其周围八个格子中的数据,如输入2 2时,输出34 30 47 29 48 14 12 31(注意:一共八个,不包括该位置上的数)(参见图中的黄色部分),计算这些数的和并输出。另外,如果选择的位置在边缘或角上时,周围的格数不够八个,按实际个数输出。请用循环有规律地列举出来各个值,不要采用顺序结构逐个罗列。这项功能由函数mine()完成。
  (5)设计函数change()改变数组中的值。改变的规则是:从第2行(即a[1]行)开始到最后一行,每一元素是其正上方元素和右上方元素之和,例如a[1][0]取a[0][0]和a[0][1]之和,a[1][1]取a[0][1]和a[0][2]之和,……。对各行最后一列元素,其右上方无数据,取上一行中的第一个元素,如a[1][7]取a[0][7]和a[0][0]之和。对上图中的数据,a[1]行的  元素将依次为:50 27 41 30 33 63 60 64,a[2]行依次为77 68…114。
程序模板:

#include  <iostream>
#include <time.h>
using namespace std;
void setdata(int a[8][8]);  //设置随机数
void out(int a[8][8]);		//输出数组
void outDiagonal(int a[8][8]);  //输出对角线元素的值
void mine(int a[8][8],int x, int y);		//按“扫雷”游戏的规则输出相邻格子
void change(int a[8][8]); 				//按要求改变数值
int main()
{
	int a[8][8],x,y;
	setdata(a);
	out(a);  
	outDiagonal(a);
	cout<<"输入一个位置:";
	cin>>x>>y;
	mine(a,x,y);
	change(a);
	out(a);
	return 0;
}
void setdata(int a[8][8])
{
	int i,j;
	srand(time(NULL));//需要用当前时间作“种子”,以便每次运行取得的序列不同
	for(i=0;i<8;i++)
		for(j=0;j<8;j++)
			a[i][j]=rand()%50+1;
		return;
}
//按行序优先输出数组
void out(int a[8][8])
{
}
//输出对角线元素的值(从左上到右下、从右上到左下)
void outDiagonal(int a[8][8])
{
}
//按扫雷游戏规则,输出a[x][y]周围的8个数字
void mine(int a[8][8],int x, int y)
{
}
//按题目中所言规则更改元素的值
void change(int a[8][8])
{
}

【拓展-二维数组更多用处】这部分可以不去选择实践,看看、想想即可。
  中国象棋的棋盘也可以采用二维数组存储。
  (1)下棋程序需要体现相关的规则,例如,马走日。通过键盘输入一个位置,输出按“日”字型可以走到的所有位置,及其位置上的数值。例如,在项目6的图中,输入2 2时,输出(0,1,2)(0,3,16) (1,0,9) (1,4,12)……(项目6图中的背景有斜线的部分。可走到的位置一般为八个,位置在边缘或角上时,可能不够八个,按实际输出)。
  (2)马走日还有“别马腿”的规则。在任务4的图中,如果马腿位置上的数大于25,认为马腿被别了(实际游戏中,以该位置是否有棋子进行判断)。请在(1)的基础上考虑这一规则,只输出所有能走到的位置及数值。
  俄罗斯方块中的每一个小方块也用二维数组(一般4*4或8*8)表示,单色游戏数组元素用0、1即可,彩色的取值不限于0、1。对小方块的基本操作包括左旋、右旋、反转等操作。请针对上面的二维数组,实现左旋、右旋、反转等操作。
  JPEG是数字图像存储的国际标准。在JPEG编码规则中,其编码的基本单位是8*8的图像“块”,其中有一个环节叫“Z字型编码”,也即将一个8*8的“块”中数据按如图所示的方向取出,形成一个1*64的向量(可以保存在一个一维数组中)。请输出前面的8*8的数据块对应的向量。

  
  《线性代数》是工程数学的重要组成,在大二时开设,其中将涉及大量矩阵的运算,用于解决工程中的问题。在编程实现矩阵操作时,就是二维数组的操作。


附:部分词典,复制到词本中自建文件

b.c. (缩)公元前
b/l n.(缩)提单
baby n.婴儿,年龄最小的人
baby-sit v.(替人)看护小孩
baby-sitter n.看护小孩的人
bachelor n.单身汉,学士
back n.背;adj.背后的
backbone n.脊梁骨
backdate v.回溯
background n.背景,经历
backing n.倒退,支持物
backlog n.未交付的订货
backward adv.向后,逆
backwardness n.落后(状态)
bacon n.咸肉,熏肉
bacterium n.细菌
bad adj.坏的,低劣的
badge n.徽章
badly adv.坏,非常,严重地
badminton n.羽毛球
baffle v.困扰,难倒
bag n.袋子,提包
baggage n.行李
baggy adj.袋状的
bait n.饵,诱饵
bake v.烤,烘
baker n.面包师
bakery n.面包店
balance n.平衡,天平,余额
balcony n.阳台
bald adj.秃的
ball n.球,球状物,舞会
ballet n.芭蕾舞
balloon n.气球
ballooning n.热气球飞行运动
ball-point pen;n.圆珠笔
ballroom n.舞厅
bamboo n.竹
bamboo-shoot n.竹笋
banana n.香蕉
band n.乐队,带子;v.联合
bandage n.绷带
bandit n.盗匪,歹徒
bang n.,v.砰的一响
bank n.岸,银行
banker n.银行家
banking n.银行业务、金融业
bankrupt n.,v.,adj.破产
banner n.旗帜,横幅
banquet n.宴会
bar n.棒,杆,酒吧
barber n.理发师
bare adj.裸的,直率的
barely adv.赤裸裸地
bargain n.交易,便宜货
barge n.驳船
bark n.狗吠,树皮;v.吠
barn n.谷仓,牲口棚
barometer n.晴雨表,标记
baron n.男爵
baroness n.男爵夫人,女男爵
barrel n.桶,枪(炮)管
barren adj.不育的,贫瘠的
barrier n.障碍,壁垒
barter n.易货贸易
base n.基础,基地;v.基于
baseball n.棒球
basement n.地下室,地窖
basic adj.基本的,基础的
basically adv.基本上,主要地
basin n.盆,盆地
basis n.基础,根据
basket n.篮子,筐
basketball n.篮球
bat n.球拍,蝙蝠;v.击打
bath n.洗澡,浴室
bathe v.洗澡,冲洗
bathroom n.浴室,洗手间
batter v.打击
battery n.电池
battle n.战斗,战役
bay n.海湾,湾
bazaar n.集市
be v.是,存在
beach n.海滩,湖滨
bead n.有孔小珠
beak n.鸟嘴
beam n.梁,射线;v.发光
bean n.豆子
bear v.负担,忍受,生育
bearing n.举止,意义,轴承
bearish adj.熊市的
beast n.野兽,牲畜
beat v.打,击败;n.击打
beautiful adj.美丽的,绝妙的
beauty n.美,美女
because conj.因为,由于
become v.变成
bed n.床,河床,苗圃
bedroom n.卧室
bee n.蜜蜂
beef n.牛肉
beer n.啤酒
beetle n.甲虫
before prep.在...前面
beforehand adv.事先,预先
beg v.乞讨,恳求
beggar n.乞丐
begin v.开始,着手进行
beginner n.初学者
beginning n.开端,起点
behalf n.代表
behave v.行为,举动
behavior n.行为,举止
behind prep.在...后面
behindhand adj.落后,事后
being n.生物,存在
belief n.信仰,信心
believe v.相信,认为
bell n.钟,铃
belly n.肚子
belong v.属于
beloved adj.敬爱的;n.爱人
below adj.,prep.在...下面
belt n.带,腰带
bench n.长凳,工作台
bend v.弯曲,俯身;n.拐弯
beneath prep.在...之下
beneficial adj.有益的,有利的
beneficiary n.受益者
benefit n.益处,利益
benevolence n.慈悲,捐助
benevolent adj.乐善好施的
bent adj.弯曲的
berry n.浆果
beside prep.在...之旁
besides adj.而且;prep...之外
best adj.最好的
bestow v.赠给,授予
best-seller n.畅销书(货)
best-selling adj.畅销的
bet n.,v.打赌
betray v.背叛,泄露
betrayal n.背叛,暴露
better adj.更好的;adv.较好
better-off adj.经济情况较好的
between prep.在两者之间
beverage n.饮料
beware v.当心
bewilder v.迷惑,茫然
beyond prep.在...那边,超出
bias n.偏好
bible n.圣经
bicycle n.自行车
bid n.,v.报价,投标
bidding n.投标
big adj.大的,重大的
bike n.自行车
bill n.帐单,议案,钞票
billion n.十亿
bind v.捆绑,约束
binding n.装订
biographer n.传记记者
biography n.传记
biologist n.生物学家
biology n.生物学
bird n.鸟
birth n.出生,创始
birthday n.生日,诞辰
birthplace n.出生地
biscuit n.饼干
bishop n.主教
bit n.小片,一点
bite n.,v.咬,叮;n.一口
bitter adj.苦的,痛苦的
bitterly adv.惨痛地,辛酸地
bitterness n.苦味,苦难
black adj.黑的;n.黑色
blackboard n.黑板
blacksmith n.铁匠
blade n.刀刃,叶片
blame v.责备;n.过失
blank adj.空白的;n.空格
blanket n.毛毯
blast n.阵风;v.爆炸
blaze n.火光,光亮
bleach v.漂白,变白
bleed v.出血,流血
blend v.混合,掺混
bless v.保佑,祝福
blessing n.祝福
blind adj.瞎的;v.使失明
blink adj.眨眼,闪烁
block n.大块,街区,障碍物
blockage n.封锁
blond adj.金发的
blood n.血,血统
bloody adj.流血的,残忍的
bloom n.花;v.开花
blossom n.(果树的)花
blot n.污迹
blouse n.女衫
blow v.吹,吹掉,刮风
blue adj.蓝色的,忧郁的
blunder n.大错
blunt adj.钝的,生硬的
blush v.脸红,害臊
blushy adj.害羞的
board n.木板,伙食,董事会
boarding n.伙食
boast v.夸口,以...而自豪
boat n.小船,艇
body n.身体,尸体,团体
bodyguard n.保镖
boil v.沸腾,煮沸
boiler n.锅炉
boiling adj.沸腾的
bold adj.大胆的
boldness n.胆略
bolt n.螺检,插销;v.闩门
bomb n.炸弹;v.轰炸
bomber n.轰炸机
bonafide adj.真诚的,无欺的
bond n.束缚,联结,债券
bonded adj.保税的
bone n.骨,骨骼
bonus n.红利
bony adj.骨头的
book n.书;v.预订(票)
bookcase n.书橱
booking adj.定货
booklet n.小册子
bookshelf n.书架
bookstore n.书店
boom v.隆隆响,兴旺,繁荣
booming adj.兴旺的,繁荣的
boost v.抬高,促进
boot n.靴子
booth n.货摊,电话亭
border n.国界,边境
bore v.烦扰,使厌烦,钻孔
boring adj.讨厌的
born adj.出生的,天生的
borrow v.借,借用
borrowings n.借款
bosom n.胸,胸怀
boss n.上司,老板
bossy adj.好发号施令的
both pron.,adj.双方,两
bother v.打扰,麻烦;n.麻烦
bottle n.瓶子
bottle-neck n.影响...的环节
bottom n.底部,末尾
bottom-line n.末行数字,结果
bough n.大树枝
bounce v.跳起;n.跳跃
bound v.缚,以...为界
boundary n.界线,边界
bourgeois n.资产阶级分子
bow v.鞠躬,服从;n.弓
bowl n.碗,钵
bowling n.保龄球
box n.箱,盒;v.拳击
boxer n.拳击运动员
boxing n.拳击
boxing-day n.节礼日
boy n.男孩,小伙子
boycott v.,n.抵制
brace n.支撑;v.激励
bracket n.括号
brag v.吹嘘,夸口
brain n.脑子,头脑,智能
brake n.制动器;v.刹车
brake n.v.刹车
branch n.树枝,分支,分部
brand n.牌子,商标
brandy n.白兰地
brass n.黄铜
brave adj.勇敢的;v.冒着
bravely adv.勇敢地
bravery n.勇敢
brazil n.巴西
brazilian adj.,n.巴西的(人)
breach n.违反(契约)
bread n.面包,生计
bread-earner n.挣钱养家的人
breadth n.宽度,大量
break n.打破,破坏;n.裂口
breakage n.裂口
breakdown n.故障,衰竭
breakfast n.早饭
breakthrough n.突破
breast n.乳房,胸脯
breath n.呼吸,气息
breathe v.呼吸
breed v.繁殖,饲养;n.品种
breeze n.微风
bribe v.贿赂
bribery v.贿赂
brick n.砖
bride n.新娘
bridegroom n.新郎
bridge n.桥梁,桥牌
bridle n.约束;v.抑制
brief adj.简短的
briefing n.简要情况
briefly adv.简单地,简短地
bright adj.明亮的,鲜明的
brighten v.使发光
brightness n.光辉,明亮
brilliance n.辉煌,光彩
brilliant v.辉煌的,杰出的
brim n.边,边缘
bring v.拿来,带来
brink n.边缘
brisk adj.敏捷的,活跃的
bristle n.鬃毛
britain n.不列颠,英国
british adj.英国的,英属的
brittle adj.易碎的,脆的
broad adj.宽的,辽阔的
broadcast v.,n.广播
broadcasting n.广播节目
broaden v.加宽,扩大
brochure n.产品介绍手册
broken adj.破碎的,毁坏了的
broker n.经纪人
bronze n.青铜
brood n.一窝
brook n.小河,溪流
broom n.扫帚
brother n.兄弟,同胞
brotherhood n.兄弟情谊
brother-in-law n.姻兄(弟)
brow n.眉毛,额
brown n.,adj.褐色(的)
bruise n.青肿;v.打伤
brush n.刷子,画笔;v.刷
brutal adj.野蛮的
brute n.禽兽,畜生
bubble n.气泡
bucket n.水桶
bud n.芽,蓓蕾
buddhism n.佛教
buddhist n.佛教徒
budget n.预算
buffalo n.水牛,野牛
buffet n.冷餐
bug n.臭虫,虫子
bugle n.喇叭
build v.建造,建设
builder n.建筑工人,建设者
building n.建筑物,大楼
bulb n.球形物,灯泡
bulk n.体积,大半
bulky adj.庞大的,笨重的
bull n.公牛
bullet n.子弹
bulletin n.公报
bullion n.金块,金条
bullish adj.行情看涨的
bump v.碰,颠簸;n.碰撞
bumpy adj.颠簸不平的
bunch n.一束
bundle n.,v.捆,包
burden n.担子,负担
burdensome adj.沉重的
bureau n.局,司,办公室
bureaucracy n.官僚主义
bureaucratic adj.官僚主义的
burglar n.夜盗,窃贼
burglary n.盗窃
burial n.埋葬
burn v.烧,燃烧,烧伤
burner n.喷灯
burnt adj.烧焦的,烧坏的
burst v.,n.爆炸,破裂
bury v.掩埋,安葬
bus n.公共汽车
bush n.灌木
bushel n.蒲式耳(重量单位)
business n.行业,买卖,商号
businesslike adj.事务式的
busy adj.忙碌的,热闹的
but prep.但是,除了
butcher n.屠夫;v.屠宰
butchery n.肉食店
butt n.根端;v.顶撞
butter n.黄油
butterfly n.蝴蝶
button n.钮扣,按钮
buy v.买,购买
buyer n.购买者
buzz v.嗡嗡叫;n.嗡嗡声
by prep.在...旁边,按照
bygone n.已往的,过时的
bypass n.旁道,分路
by-product n.副产品

  


回到课程主页,链接:C++程序设计课程主页-2012级

  本次上机对应的教学内容:第5章   数组 - 二维数组、字符串


【项目1-折腾二维数组】创建一个长度为5行4列的二维整型数组,通过初始化,为数组中的前两列的10个元素赋初值,然后通过键盘输入,使后两列的10个元素获得值,将所有元素值乘以3后保存在数组中。输出数组时,按行序优先输出,再按列序优先输出(输出的第一行是数组中的第一列……,其实输出的就是“转置”),再将数组“倒”着输出(即最后一行最后一列的最先输出,第0行第0列的最后输出),再输出数组中的所有偶数,以及行列下标之和为3的倍数的元素值。
     提示:编程时,可以做一点,调一点,全写好再改会自讨苦吃。

  同时也给出参考的运行界面:

  
     报告模板及部分代码

/*
* 程序的版权和版本声明部分
* Copyright (c)2012, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: array.cpp                           
* 作    者:                            
* 完成日期:  年  月   日
* 版本号: v1.0      
* 输入描述:无
* 问题描述:定义二维数组,为数组赋初值、输入值、更改值、按各种方法输出
*/
#include <iostream>
using namespace std;
int main( )
{
	int i,j;
    //创建5行4列的二维整型数组,为数组中的前两列的10个元素赋初值
	int a[5][4]={{0,1},{4,5},{8,9},{12,13},{16,17}}; 


	//键盘输入使后两列10个元素的值
	cout<<"请输入10个整数:"<<endl;


	//按行序优先输出
	cout<<"数组中的值为:"<<endl;
	
	//将所有元素值乘以3后保存在数组中
	cout<<"现在将所有元素乘以3倍...";
	
	//按行序优先输出
	cout<<"行序优先输出:"<<endl;
		
	//按列序优先输出(输出的第一行是数组中的第一列……,其实输出的就是“转置”)
	cout<<"列序优先输出:"<<endl;
	
	//将数组“倒”着输出(即最后一行最后一列的最先输出,第0行第0列的最后输出)
	cout<<"倒着输出:"<<endl;


	//输出数组中的所有偶数
	cout<<"数组中的偶数:"<<endl;
	
	//输出所有行列下标之和为3的倍数的元素值
	cout<<"行列下标之和为3的倍数的元素:"<<endl;


	return 0;
}

补充:为了督促同学们学会与习惯使用单步调试工具,要求在报告中加一张图,图示在单步执行时,看到的数组a中各行各列的值。


【项目2-杨辉三角】编写程序,打印出以下形式的扬辉三角形。
1
1    1
1    2   1
1    3    3    1
1    4   6    4    1
1    5   10   10   5    1
1    6   15   20   15   6   1
  可以将杨辉三角形的值放在一个方形矩阵的下半三角中,如果需打印7行杨辉三角形,应该定义等于或大于7X7的方形矩阵,只是矩阵的上半部和其余部分并不使用。杨辉三角形具有如下特点:(1)第0列和对角线上的元素都为1。(2)除第0列和对角线上的元素以外,其它元素的值均为前一行上的同列元素和前一列元素之和。
  函数setdata按以上规律给数组元素置数,函数outdata输出杨辉三角形。

#include <iostream>  
using namespace std;  
int main()  
{  
  int a[7][7]={0};  
  setdata(a); //给数组赋值  
  outdata(a); //输出数组  
  return 0;
}  
void setdata(int a[7][7])  
{  
}  
void outdata(int a[7][7])  
{   
}  

【项目3-带姓名的成绩单】设score数组中存储同学们的C++成绩,增加一个数组string name[20]并赋初值,表示同学们的姓名。这两个数组中,同学的姓名与成绩的下标保持一致(例如name[1]和score[1]表示同一位同学的姓名和C++成绩)。请(1)输出按成绩排序后的同学的名单;(2)输出按同学姓名排序后的成绩单(排序对象是字符串)。提示:排序中交换score中的元素时,只要同时也交换name中的相应元素,就可以实现姓名和成绩的同步(如果交换成绩而不交换姓名,两者的对应关系就被破坏了。)



【项目4-多科成绩单】用二维数组score[][4]保存同学们的高数、英语、C++成绩及总成绩(在此假设学生的学号为整型的连续值,用数组的行下标作学号)。在此基础上,完成下面的操作:
(1)设计输入成绩的函数,输入3科成绩后可以自动求出总分,并将数据全保存到数组中;
(2)输出各门课及总分的最高成绩、最低成绩、平均成绩和成绩的标准偏差;
(3)输出考得总分最高、最低同学的人数及对应的学号。
要求:学生人数num在main()函数中输入,score[][4]数组也是main()函数的局部变量,最好将其他功能也设计成函数,使main()函数尽可能地简单。
【项目4扩展(选做)-带姓名的多科成绩单】增加用数组string name[]表示同学们的姓名,使姓名与成绩的下标保持一致(例如name[1]和score[1][0]、score[1][1]、score[1][2]和score[1][3]表示同一位同学的数据)。据此,将项目4中的第(3)项任务改为输出总分最高的同学的姓名。


【项目5-电子词典】:做一个简单的电子词典。在文件dictionary.txt中(本文后附了一部分(b打头的词)作为调试,校内同学到我的BB教学平台中找,校外人士感兴趣的告知我Email),保存的是英汉对照的一个词典,词汇量近8000个,英文与释义间用’\t’隔开。编程序,将文件中的内容读到两个数组e[]和c[]中,分别代表英文和中文,由用户输入英文词,显示中文意思。运行程序后,支持用户连续地查词典,直到输入“0000”结束,如下图:
      
  提示:文件中的词汇已经排序,故在查找时,用二分查找法提高效率。


【项目6-体会棋盘游戏中的数据存储】
  定义一个8行8列的二维数组a[8][8]。
  

  (1)为二维数组中的数据赋50以内的随机数(程序模板中setdata()函数已经完成,利用产生随机数的系统函数实现),可能的取值如上图所示;
  (2)设计函数out()按行输出二维数组中的数据;
  (3)设计函数outDiagonal()输出从左上到右下对角线上的元素的值,如对图的数据而言,输出为48 34 12 31 40 42 34 45;再输出从右上到左下对角线上的值;
  (4)将此数组视为“扫雷”游戏的界面(实际上扫雷游戏的界面一般就用二维数组保存其界面),通过键盘输入一个位置,输出其周围八个格子中的数据,如输入2 2时,输出34 30 47 29 48 14 12 31(注意:一共八个,不包括该位置上的数)(参见图中的黄色部分),计算这些数的和并输出。另外,如果选择的位置在边缘或角上时,周围的格数不够八个,按实际个数输出。请用循环有规律地列举出来各个值,不要采用顺序结构逐个罗列。这项功能由函数mine()完成。
  (5)设计函数change()改变数组中的值。改变的规则是:从第2行(即a[1]行)开始到最后一行,每一元素是其正上方元素和右上方元素之和,例如a[1][0]取a[0][0]和a[0][1]之和,a[1][1]取a[0][1]和a[0][2]之和,……。对各行最后一列元素,其右上方无数据,取上一行中的第一个元素,如a[1][7]取a[0][7]和a[0][0]之和。对上图中的数据,a[1]行的  元素将依次为:50 27 41 30 33 63 60 64,a[2]行依次为77 68…114。
程序模板:

#include  <iostream>
#include <time.h>
using namespace std;
void setdata(int a[8][8]);  //设置随机数
void out(int a[8][8]);		//输出数组
void outDiagonal(int a[8][8]);  //输出对角线元素的值
void mine(int a[8][8],int x, int y);		//按“扫雷”游戏的规则输出相邻格子
void change(int a[8][8]); 				//按要求改变数值
int main()
{
	int a[8][8],x,y;
	setdata(a);
	out(a);  
	outDiagonal(a);
	cout<<"输入一个位置:";
	cin>>x>>y;
	mine(a,x,y);
	change(a);
	out(a);
	return 0;
}
void setdata(int a[8][8])
{
	int i,j;
	srand(time(NULL));//需要用当前时间作“种子”,以便每次运行取得的序列不同
	for(i=0;i<8;i++)
		for(j=0;j<8;j++)
			a[i][j]=rand()%50+1;
		return;
}
//按行序优先输出数组
void out(int a[8][8])
{
}
//输出对角线元素的值(从左上到右下、从右上到左下)
void outDiagonal(int a[8][8])
{
}
//按扫雷游戏规则,输出a[x][y]周围的8个数字
void mine(int a[8][8],int x, int y)
{
}
//按题目中所言规则更改元素的值
void change(int a[8][8])
{
}

【拓展-二维数组更多用处】这部分可以不去选择实践,看看、想想即可。
  中国象棋的棋盘也可以采用二维数组存储。
  (1)下棋程序需要体现相关的规则,例如,马走日。通过键盘输入一个位置,输出按“日”字型可以走到的所有位置,及其位置上的数值。例如,在项目6的图中,输入2 2时,输出(0,1,2)(0,3,16) (1,0,9) (1,4,12)……(项目6图中的背景有斜线的部分。可走到的位置一般为八个,位置在边缘或角上时,可能不够八个,按实际输出)。
  (2)马走日还有“别马腿”的规则。在任务4的图中,如果马腿位置上的数大于25,认为马腿被别了(实际游戏中,以该位置是否有棋子进行判断)。请在(1)的基础上考虑这一规则,只输出所有能走到的位置及数值。
  俄罗斯方块中的每一个小方块也用二维数组(一般4*4或8*8)表示,单色游戏数组元素用0、1即可,彩色的取值不限于0、1。对小方块的基本操作包括左旋、右旋、反转等操作。请针对上面的二维数组,实现左旋、右旋、反转等操作。
  JPEG是数字图像存储的国际标准。在JPEG编码规则中,其编码的基本单位是8*8的图像“块”,其中有一个环节叫“Z字型编码”,也即将一个8*8的“块”中数据按如图所示的方向取出,形成一个1*64的向量(可以保存在一个一维数组中)。请输出前面的8*8的数据块对应的向量。

  
  《线性代数》是工程数学的重要组成,在大二时开设,其中将涉及大量矩阵的运算,用于解决工程中的问题。在编程实现矩阵操作时,就是二维数组的操作。


附:部分词典,复制到词本中自建文件

b.c. (缩)公元前
b/l n.(缩)提单
baby n.婴儿,年龄最小的人
baby-sit v.(替人)看护小孩
baby-sitter n.看护小孩的人
bachelor n.单身汉,学士
back n.背;adj.背后的
backbone n.脊梁骨
backdate v.回溯
background n.背景,经历
backing n.倒退,支持物
backlog n.未交付的订货
backward adv.向后,逆
backwardness n.落后(状态)
bacon n.咸肉,熏肉
bacterium n.细菌
bad adj.坏的,低劣的
badge n.徽章
badly adv.坏,非常,严重地
badminton n.羽毛球
baffle v.困扰,难倒
bag n.袋子,提包
baggage n.行李
baggy adj.袋状的
bait n.饵,诱饵
bake v.烤,烘
baker n.面包师
bakery n.面包店
balance n.平衡,天平,余额
balcony n.阳台
bald adj.秃的
ball n.球,球状物,舞会
ballet n.芭蕾舞
balloon n.气球
ballooning n.热气球飞行运动
ball-point pen;n.圆珠笔
ballroom n.舞厅
bamboo n.竹
bamboo-shoot n.竹笋
banana n.香蕉
band n.乐队,带子;v.联合
bandage n.绷带
bandit n.盗匪,歹徒
bang n.,v.砰的一响
bank n.岸,银行
banker n.银行家
banking n.银行业务、金融业
bankrupt n.,v.,adj.破产
banner n.旗帜,横幅
banquet n.宴会
bar n.棒,杆,酒吧
barber n.理发师
bare adj.裸的,直率的
barely adv.赤裸裸地
bargain n.交易,便宜货
barge n.驳船
bark n.狗吠,树皮;v.吠
barn n.谷仓,牲口棚
barometer n.晴雨表,标记
baron n.男爵
baroness n.男爵夫人,女男爵
barrel n.桶,枪(炮)管
barren adj.不育的,贫瘠的
barrier n.障碍,壁垒
barter n.易货贸易
base n.基础,基地;v.基于
baseball n.棒球
basement n.地下室,地窖
basic adj.基本的,基础的
basically adv.基本上,主要地
basin n.盆,盆地
basis n.基础,根据
basket n.篮子,筐
basketball n.篮球
bat n.球拍,蝙蝠;v.击打
bath n.洗澡,浴室
bathe v.洗澡,冲洗
bathroom n.浴室,洗手间
batter v.打击
battery n.电池
battle n.战斗,战役
bay n.海湾,湾
bazaar n.集市
be v.是,存在
beach n.海滩,湖滨
bead n.有孔小珠
beak n.鸟嘴
beam n.梁,射线;v.发光
bean n.豆子
bear v.负担,忍受,生育
bearing n.举止,意义,轴承
bearish adj.熊市的
beast n.野兽,牲畜
beat v.打,击败;n.击打
beautiful adj.美丽的,绝妙的
beauty n.美,美女
because conj.因为,由于
become v.变成
bed n.床,河床,苗圃
bedroom n.卧室
bee n.蜜蜂
beef n.牛肉
beer n.啤酒
beetle n.甲虫
before prep.在...前面
beforehand adv.事先,预先
beg v.乞讨,恳求
beggar n.乞丐
begin v.开始,着手进行
beginner n.初学者
beginning n.开端,起点
behalf n.代表
behave v.行为,举动
behavior n.行为,举止
behind prep.在...后面
behindhand adj.落后,事后
being n.生物,存在
belief n.信仰,信心
believe v.相信,认为
bell n.钟,铃
belly n.肚子
belong v.属于
beloved adj.敬爱的;n.爱人
below adj.,prep.在...下面
belt n.带,腰带
bench n.长凳,工作台
bend v.弯曲,俯身;n.拐弯
beneath prep.在...之下
beneficial adj.有益的,有利的
beneficiary n.受益者
benefit n.益处,利益
benevolence n.慈悲,捐助
benevolent adj.乐善好施的
bent adj.弯曲的
berry n.浆果
beside prep.在...之旁
besides adj.而且;prep...之外
best adj.最好的
bestow v.赠给,授予
best-seller n.畅销书(货)
best-selling adj.畅销的
bet n.,v.打赌
betray v.背叛,泄露
betrayal n.背叛,暴露
better adj.更好的;adv.较好
better-off adj.经济情况较好的
between prep.在两者之间
beverage n.饮料
beware v.当心
bewilder v.迷惑,茫然
beyond prep.在...那边,超出
bias n.偏好
bible n.圣经
bicycle n.自行车
bid n.,v.报价,投标
bidding n.投标
big adj.大的,重大的
bike n.自行车
bill n.帐单,议案,钞票
billion n.十亿
bind v.捆绑,约束
binding n.装订
biographer n.传记记者
biography n.传记
biologist n.生物学家
biology n.生物学
bird n.鸟
birth n.出生,创始
birthday n.生日,诞辰
birthplace n.出生地
biscuit n.饼干
bishop n.主教
bit n.小片,一点
bite n.,v.咬,叮;n.一口
bitter adj.苦的,痛苦的
bitterly adv.惨痛地,辛酸地
bitterness n.苦味,苦难
black adj.黑的;n.黑色
blackboard n.黑板
blacksmith n.铁匠
blade n.刀刃,叶片
blame v.责备;n.过失
blank adj.空白的;n.空格
blanket n.毛毯
blast n.阵风;v.爆炸
blaze n.火光,光亮
bleach v.漂白,变白
bleed v.出血,流血
blend v.混合,掺混
bless v.保佑,祝福
blessing n.祝福
blind adj.瞎的;v.使失明
blink adj.眨眼,闪烁
block n.大块,街区,障碍物
blockage n.封锁
blond adj.金发的
blood n.血,血统
bloody adj.流血的,残忍的
bloom n.花;v.开花
blossom n.(果树的)花
blot n.污迹
blouse n.女衫
blow v.吹,吹掉,刮风
blue adj.蓝色的,忧郁的
blunder n.大错
blunt adj.钝的,生硬的
blush v.脸红,害臊
blushy adj.害羞的
board n.木板,伙食,董事会
boarding n.伙食
boast v.夸口,以...而自豪
boat n.小船,艇
body n.身体,尸体,团体
bodyguard n.保镖
boil v.沸腾,煮沸
boiler n.锅炉
boiling adj.沸腾的
bold adj.大胆的
boldness n.胆略
bolt n.螺检,插销;v.闩门
bomb n.炸弹;v.轰炸
bomber n.轰炸机
bonafide adj.真诚的,无欺的
bond n.束缚,联结,债券
bonded adj.保税的
bone n.骨,骨骼
bonus n.红利
bony adj.骨头的
book n.书;v.预订(票)
bookcase n.书橱
booking adj.定货
booklet n.小册子
bookshelf n.书架
bookstore n.书店
boom v.隆隆响,兴旺,繁荣
booming adj.兴旺的,繁荣的
boost v.抬高,促进
boot n.靴子
booth n.货摊,电话亭
border n.国界,边境
bore v.烦扰,使厌烦,钻孔
boring adj.讨厌的
born adj.出生的,天生的
borrow v.借,借用
borrowings n.借款
bosom n.胸,胸怀
boss n.上司,老板
bossy adj.好发号施令的
both pron.,adj.双方,两
bother v.打扰,麻烦;n.麻烦
bottle n.瓶子
bottle-neck n.影响...的环节
bottom n.底部,末尾
bottom-line n.末行数字,结果
bough n.大树枝
bounce v.跳起;n.跳跃
bound v.缚,以...为界
boundary n.界线,边界
bourgeois n.资产阶级分子
bow v.鞠躬,服从;n.弓
bowl n.碗,钵
bowling n.保龄球
box n.箱,盒;v.拳击
boxer n.拳击运动员
boxing n.拳击
boxing-day n.节礼日
boy n.男孩,小伙子
boycott v.,n.抵制
brace n.支撑;v.激励
bracket n.括号
brag v.吹嘘,夸口
brain n.脑子,头脑,智能
brake n.制动器;v.刹车
brake n.v.刹车
branch n.树枝,分支,分部
brand n.牌子,商标
brandy n.白兰地
brass n.黄铜
brave adj.勇敢的;v.冒着
bravely adv.勇敢地
bravery n.勇敢
brazil n.巴西
brazilian adj.,n.巴西的(人)
breach n.违反(契约)
bread n.面包,生计
bread-earner n.挣钱养家的人
breadth n.宽度,大量
break n.打破,破坏;n.裂口
breakage n.裂口
breakdown n.故障,衰竭
breakfast n.早饭
breakthrough n.突破
breast n.乳房,胸脯
breath n.呼吸,气息
breathe v.呼吸
breed v.繁殖,饲养;n.品种
breeze n.微风
bribe v.贿赂
bribery v.贿赂
brick n.砖
bride n.新娘
bridegroom n.新郎
bridge n.桥梁,桥牌
bridle n.约束;v.抑制
brief adj.简短的
briefing n.简要情况
briefly adv.简单地,简短地
bright adj.明亮的,鲜明的
brighten v.使发光
brightness n.光辉,明亮
brilliance n.辉煌,光彩
brilliant v.辉煌的,杰出的
brim n.边,边缘
bring v.拿来,带来
brink n.边缘
brisk adj.敏捷的,活跃的
bristle n.鬃毛
britain n.不列颠,英国
british adj.英国的,英属的
brittle adj.易碎的,脆的
broad adj.宽的,辽阔的
broadcast v.,n.广播
broadcasting n.广播节目
broaden v.加宽,扩大
brochure n.产品介绍手册
broken adj.破碎的,毁坏了的
broker n.经纪人
bronze n.青铜
brood n.一窝
brook n.小河,溪流
broom n.扫帚
brother n.兄弟,同胞
brotherhood n.兄弟情谊
brother-in-law n.姻兄(弟)
brow n.眉毛,额
brown n.,adj.褐色(的)
bruise n.青肿;v.打伤
brush n.刷子,画笔;v.刷
brutal adj.野蛮的
brute n.禽兽,畜生
bubble n.气泡
bucket n.水桶
bud n.芽,蓓蕾
buddhism n.佛教
buddhist n.佛教徒
budget n.预算
buffalo n.水牛,野牛
buffet n.冷餐
bug n.臭虫,虫子
bugle n.喇叭
build v.建造,建设
builder n.建筑工人,建设者
building n.建筑物,大楼
bulb n.球形物,灯泡
bulk n.体积,大半
bulky adj.庞大的,笨重的
bull n.公牛
bullet n.子弹
bulletin n.公报
bullion n.金块,金条
bullish adj.行情看涨的
bump v.碰,颠簸;n.碰撞
bumpy adj.颠簸不平的
bunch n.一束
bundle n.,v.捆,包
burden n.担子,负担
burdensome adj.沉重的
bureau n.局,司,办公室
bureaucracy n.官僚主义
bureaucratic adj.官僚主义的
burglar n.夜盗,窃贼
burglary n.盗窃
burial n.埋葬
burn v.烧,燃烧,烧伤
burner n.喷灯
burnt adj.烧焦的,烧坏的
burst v.,n.爆炸,破裂
bury v.掩埋,安葬
bus n.公共汽车
bush n.灌木
bushel n.蒲式耳(重量单位)
business n.行业,买卖,商号
businesslike adj.事务式的
busy adj.忙碌的,热闹的
but prep.但是,除了
butcher n.屠夫;v.屠宰
butchery n.肉食店
butt n.根端;v.顶撞
butter n.黄油
butterfly n.蝴蝶
button n.钮扣,按钮
buy v.买,购买
buyer n.购买者
buzz v.嗡嗡叫;n.嗡嗡声
by prep.在...旁边,按照
bygone n.已往的,过时的
bypass n.旁道,分路
by-product n.副产品

  

==================== 迂者 贺利坚 CSDN博客专栏=================

|==  IT学子成长指导专栏  专栏文章分类目录(不定期更新)    ==|

|== C++ 课堂在线专栏   贺利坚课程教学链接(分课程年级)   ==|

======== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =======


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明
C语言中的二指针指向二维数组意味着二指针指向一个指针数组,而指针数组的每个元素又指向一个一维数组。以二指针来访问二维数组能够更灵活地进行矩阵的操作。 首先,我们需要先定义一个指针数组,每个指针元素都指向一个一维数组。假设我们要定义一个3行4列的二维数组: ```c int** array; // 定义二指针 array = (int**) malloc(3 * sizeof(int*)); // 为指针数组分配内存空间 ``` 接下来,我们通过循环为每个指针元素分配一维数组的内存空间,并将其地址赋给二指针的元素: ```c int i, j; for (i = 0; i < 3; i++) { array[i] = (int*) malloc(4 * sizeof(int)); // 为每个一维数组分配内存空间 for (j = 0; j < 4; j++) { array[i][j] = i * 4 + j; // 初始化数组元素的值 } } ``` 这样,我们就成功地用二指针指向了一个3行4列的二维数组。 使用二指针访问二维数组时,我们可以通过对二指针的解引用来获取指针数组的元素的地址,然后再通过解引用该地址来获取一维数组的元素值。假设我们要访问第2行第3列的元素: ```c int value = *(*(array + 1) + 2); // 访问第2行第3列的元素值 ``` 其中,`(array + 1)`表示指针数组的第2个指针元素,`+ 2`表示偏移2个`int`类型的内存空间,`*`操作符分别对指向一维数组的指针和偏移后的地址进行解引用操作。 最后,记得在使用完二维数组后释放内存空间,避免内存泄漏: ```c for (i = 0; i < 3; i++) { free(array[i]); // 释放每个一维数组的内存空间 } free(array); // 释放指针数组的内存空间 ``` 以上就是使用二指针指向二维数组的基本操作。通过二指针,我们可以更自由地操作二维数组,实现更复杂的算法和功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迂者-贺利坚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值