设计二维数组,给出一个坐标,输出周围8个数,并将数组输出到文件
2014-01-08 13:19
316 查看
/***********************************************************/ /* 学生:刘中华 /* 日期:2014-1-8 /* 内容:设计二维数组,给出一个坐标,输出周围8个数 /* /* /***********************************************************/ #include<iostream> #include<ctime> #include<iomanip> #include<fstream> using namespace std; void setdata(int a[8][8]); void outdata(int a[8][8]); void out_diagonal(int a[8][8]); void mine(int a[8][8],int x,int y); void change(int a[8][8]); void write_file(int a[8][8]); void main() { int a[8][8],x,y; ofstream outfile;//定义文件输出流对象,对文件进行写操作 outfile.open("myfile.txt",ios::out); if(!outfile.is_open())//判断文件是否成功打开 { cout<<"open error!"<<endl; exit(1); } outfile.close();//先创建一个文件,再关闭,单独建立写文件函数 setdata(a); write_file(a); outdata(a); cout<<endl; out_diagonal(a); cout<<"输入一个位置:"; cin>>x>>y; mine(a,x,y); change(a); write_file(a); } void setdata(int a[8][8]) { int i,j; srand(time(0)); for(i=0;i<8;i++) for(j=0;j<8;j++) a[i][j]=rand()%50+1; return; } void outdata(int a[8][8]) { int i,j; for(i=0;i<8;i++) { for(j=0;j<8;j++) { cout<<setiosflags(ios::left)<<setw(6)<<a[i][j];//比较长,设置了一下输出格式而已 } cout<<endl; } } void out_diagonal(int a[8][8]) { int i,j; for(i=0,j=0;i<8;i++,j++) cout<<setw(4)<<a[i][i]; cout<<endl; } void mine(int a[8][8],int x,int y)//输入一个坐标,输出周围的8个数,不足8个,按实际情况 { int m,n; for(m=x-1;m<=x+1;m++)//这个算法想了很久,刚开始一直跳不出按类分情况,一一列举的思路, for(n=y-1;n<=y+1;n++)//后来想到,其实可以将所有9个数一一输出,不满足条件的不输出即可 { if(m<0||m>7||n<0||n>7) continue; if(m==x&&n==y) continue; cout<<a[m] <<'\t'; } cout<<endl; } void change(int a[8][8]) { int i,j; for(i=1;i<8;i++)//第二行到第8行 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][j]+a[i-1][0];//在最边上一列也即第7列,则要加上第0列元素 } void write_file(int a[8][8])//写数据到文件函数 { int i,j; ofstream outfile; outfile.open("myfile.txt",ios::app); if(!outfile.is_open())//判断文件是否成功打开 { cout<<"open error!"<<endl; exit(1); } for(i=0;i<8;i++)//写文件 { for(j=0;j<8;j++) outfile<<a[i][j]<<'\t'; outfile<<'\n'; } outfile.close();//关闭文件 }
相关文章推荐
- 实验6 数组1 设计一个程序,利用二维数组输出3x2矩阵
- 给出一个 m*n 的二维数组(元素可为正可为负),求该二维数组的一个子数组,且此子数组中所有元素的和最大,并输出该数组的和。
- 实验八 数组2 输出一张九九乘法口诀表。要求必须将乘积放入一个二维数组中,再输出该数组,程序运行效果如下
- 二维数组中,每行从左到右递增,每列从上到下递增,给出一个数,判断它是否在数组中
- 编写一个C#程序,要求定义一个行数和列数相等的二维数组, 并执行初始化,然后计算并输出数组两条对角线上的元素之和。
- 创建一个二维数组,实现该数组的行列转置,输出
- 有15个数存放在一个数组中,输入一个数,要求用折半法找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”。以15个数用赋初值的方法在程序中给出。要找的数用scanf函数输入。
- 1.编写一个简单的C语言程序:根据输入的两个整数求平均值并且在终端输出,通过gcc编译器得到它的汇编程序文件。 2.编写一个C语言程序:打印输出所有“水仙花数”,用gdb调试程序(给出步骤)。所谓“
- 设计一个学生类,其中包含学号、姓名、成绩等数据成员,创建学生对象并且倒入到文件file.txt,然后由文件读取到另一个学生对象并输出,试编程实现。
- 编写一个void sort(int*x,int n)实现将x数组中的n个数据从大到小排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件
- 1.编写一个简单的C语言程序:根据输入的两个整数求平均值并且在终端输出,通过gcc编译器得到它的汇编程序文件。 2.编写一个C语言程序:打印输出所有“水仙花数”,用gdb调试程序(给出步骤)。所谓“
- 编写一个void sort(int*x,int n)实现将x数组中的n个数据从大到小排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件
- 实验 8 数组2 输出一张九九乘法口诀表。要求必须将乘积放入一个二维数组中,再输出该数组
- 设计一个类,该类中有一个方法,该方法使用Random类随机产生10个三位数字(如636)的随机数,并把产生的10个随机数存入数组中。然后在另一个类中输出这10个数
- 实验8 编写程序,输出一张九九乘法口诀表。要求必须将乘积放入一个二维数组中,再输出该数组,程序运行效果如下
- 指针_习题设计一个程序,利用指针输出数组中任一行任一列元素的值【知识重点】
- (2)int A[nSize],其中隐藏着若干0,其余非0整数,写一个函数int Func(int* A, int nSize),使A把0移至后面,非0整数移至数组前面并保持有序,返回值为原数据中第一个元素为0的下标。(尽可能不使用辅助空间且考虑效率及异常问题,注释规范且给出设计思路)
- :输入10个整数,保存在一个数组中,在数组中查找某个数,给出是否找到的信息。如果找到了,要求输出该数在数组中所处的位置;如果找不到,输出“没有找到!
- 开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。
- 开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。