第十八周实验报告二
2012-02-23 22:26
197 查看
第18周报告2:二维数组
实验目的:学会二维数组的操作
实验内容:二维数组的操作
* 程序头部注释开始 * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: * 作 者: 计114-4 冯珍珍 * 完成日期: 2011 年 12 月 23 日 * 版本号: * 对任务及求解方法的描述部分 * 输入描述:由程序产生随机数作为初始值 * 问题描述:…… * 程序输出:…… * 程序头部的注释结束 #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); 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()P+1; return; } void out(int a[8][8]) { int i,j; for(i=0;i<8;i++) { for(j=0;j<8;j++) { cout<<a[i][j]<<"\t"; } cout<<endl; } cout<<endl; return; } void outDiagonal(int a[8][8]) { cout<<"从左上角到右下角的对角线值为:"; int x,y; for(x=0;x<8;x++) { cout<<a[x][x]<<"\t"; } cout<<endl; cout<<"从右上角到左下角的对角线值为:"; for (x=0,y=7;x<8,y>=0;x++,y--) { cout<<a[x][y]<<"\t"; } cout<<endl; return; } void mine(int a[8][8],int x, int y) { int i,j,sum=0; for(i=x-1 ;i<x+2 ;i++ ) for(j=y-1;j<y+2;j++) { if((i!=x ||j!=y)&&i>=0&&i<=7&&j>=0&&j<=7) { cout<<a[i][j]<<"\t"; } sum=sum+a[i][j]; } cout<<sum; cout<<endl<<endl; return; } void change(int a[8][8]) { int i,j; for(i=1;i<8;i++) { for(j=0;j<8;j++) { if(j<7) { a[i][j]=a[i-1][j]+a[i-1][j+1]; } else { a[i][j]=a[i-1][0]+a[i-1][j]; } cout<<a[i][j]<<"\t"; } cout<<endl; } return; }
运行结果:(贴图)
经验积累: 那个判断条件是否满足当x 跟y有一个不满足就行,如同时满足会导致很多数数不出来
上机感言:一个关系弄不好就不行