第18周实验报告2
来源:互联网 发布:windows开发包括什么 编辑:程序博客网 时间:2024/05/16 19:01
第18周报告2:二维数组实验目的:学会二维数组的操作实验内容:二维数组的操作* 程序头部注释开始* 程序的版权和版本声明部分* Copyright (c) 2011, 烟台大学计算机学院学生* Copyright (c) 2011, 烟台大学计算机学院学生* All rights reserved.* 文件名称: * 作 者: 臧鹏 * 完成日期: 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); 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; cout<<"出从左上到右下对角线上的元素的值为:"<<endl; for(i=0;i<8;i++) { cout<<a[i][i]<<' '; } cout<<endl; cout<<"出右上到左下对角线上的元素的值为:"<<endl; for(i=0;i<8;i++) { cout<<a[i][7-i]<<' '; } cout<<endl; }void mine(int a[8][8],int x, int y){ int i,j,sum=0; cout<<"a["<<x<<"]["<<y<<"]周围的数是:"<<endl; for(i=x-1;i<=x+1;i++) { for(j=y-1;j<=y+1;j++) { if((i>=0)&&(j>=0)&&(i<=7)&&(j<=7)&&!((i==x)&&(j==y))) { cout<<a[i][j]<<'\t'; sum+=a[i][j]; } } } cout<<endl; cout<<"这些数的和是"<<sum<<endl; cout<<endl;}void change(int a[8][8]){ int i,j; for(i=1;i<8;i++) { for(j=0;j<8;j++) a[i][j]=a[i-1][j]+a[i-1][(j+1)%8]; } return; }