/*
* 程序的版权和版本声明部分
* Copyright (c)2012, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: fun.cpp
* 作 者:王 飞
* 完成日期:2012 年 12月 6日
* 版本号: v1.0
* 对任务及求解方法的描述部分:数据的存储
* 输入描述:略
* 问题描述:略
* 程序输出:如下
*/
#include <iostream>
#include <time.h>
using namespace std;
void setdata(int[8][8]);
void out(int[8][8]);
void outDiagonal(int a[8][8]);
void mine(int[8][8],int,int);
void change(int[8][8]);
int main()
{
int a[8][8],b,c;
setdata(a);
out(a);
outDiagonal(a);
cout<<endl<<"请输入一个位置:"<<endl;
cin>>b>>c;
mine(a,b,c);
change(a);
out(a);
return 0;
}
void setdata(int a[8][8])
{
int i,j;
srand((unsigned)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])
{
int i,j;
for(i=0;i<8;i++)
for(j=0;j<8;j++){
cout<<a[i][j]<<" ";
if(j==7){
cout<<endl;
}
}
}
//输出对角线上的数值(从左上到右下,从右下到左上)
void outDiagonal(int a[8][8])
{
int i,j;
cout<<"输出的数值是从左上到右下:"<<endl;
for(i=0;i<8;i++)
for(j=0;j<8;j++){
if(i==j){
cout<<a[i][j]<<" ";
if(j==7){
cout<<endl;
}
}
}
cout<<"输出的数值是从右上到左下:"<<endl;
for(i=0;i<8;i++)
for(j=0;j<8;j++){
if(i+j==7){
cout<<a[i][j]<<" ";
}
}
}
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++){
cout<<a[i][j]<<" ";
sum+=a[i][j];
}
}
cout<<endl<<"这些数据的和是:"<<sum<<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;
}
输出结果:
心得体会:对于利用时间来求50以内的随机数有一些不懂!套模式来的!