18周任务(2)

来源:互联网 发布:java类中的方法 编辑:程序博客网 时间:2024/06/05 08:16
#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; } 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]<<'\t' ; cout<<endl;     cout<<endl;}void mine(int a[8][8],int x, int y){ int i,j,sum=0; cout<<"它周围的数是:"<<endl; for(i=x-1;i<=x+1;i++) {  {  for(j=y-1;j<=y+1;j++)     if(!((i==x)&&(j==y)))   {           cout<<a[i][j]<<'\t';        }     }    }             sum=sum+a[i][j];       cout<<"它们的和是:"<<"sum="<<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 ;} 

经验积累:1. 在输出对角线时我还在找i与j的关系太麻烦看了老师的末班后恍然大悟。
         2.在编输出时忘了一个cout结果是10个数一列,这个程序的cout有点多。

上机感言:终于编完了!!!