实验目的:学会二维数组的操作
实验内容:二维数组的操作
* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:
* 作
* 完成日期:
* 版 本 号:
* 对任务及求解方法的描述部分
* 输入描述:由程序产生随机数作为初始值
* 问题描述:……
* 程序输出:……
* 程序头部的注释结束
- #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()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;
- }
- }
- void outDiagonal(int a[8][8])
- {
- int i, j;
- for(i = 0; i < 8; i++)
- {
- for(j = 0; j < i; j++)
- {
- cout << '\t';
- }
- cout << a[i][i] << endl;
- }
- }
- void mine(int a[8][8],int x, int y)
- {
- if(x - 1 >= 0)
- {
- cout << a[x - 1][y] << '\t';
- if(y - 1 >= 0)
- cout << a[x][y - 1] << '\t' << a[x - 1][y - 1] << '\t';
- if(y + 1 < 8)
- cout << a[x][y + 1] << '\t' << a[x - 1][y + 1] << '\t';
- }
- if(x + 1 < 8)
- {
- cout << a[x + 1][y] << '\t';
- if(y - 1 >= 0)
- cout << a[x + 1][y - 1] << '\t';
- if(y + 1 < 8)
- cout << a[x + 1][y + 1] << '\t';
- }
- cout <<endl<<endl;
- }
- void change(int a[8][8])
- {
- int i, j;
- for(i = 1; i < 8; i++)
- {
- for(j = 0;j < 7; j++)
- {
- a[i][j] = a[i - 1][j] + a[i - 1][j + 1];
- }
- if(j == 7)
- a[i][j] = a[i - 1][j] + a[i - 1][0];
- }
- }