类实现二维数组素数自增
来源:互联网 发布:银行大数据应用 编辑:程序博客网 时间:2024/05/22 05:28
/*建立一个矩阵类 Array,对二维数组中左下三角的全部元素(包括对角线上的元素)作如下变换:(1)若该数不是素数则保持不变;(2)若该数是素数,则用大于它的最小素数替换该数。并统计二维数组中左下三角的全部元素(包括对角线上的元素)中的素数个数。要求如下:(1) 私有数据成员 int x[4][4];存储需要处理二维数组的各元素值。 int count;存储左下三角元素中素数的个数。(2) 公有成员函数 构造函数:进行初始化 x 数组和 count 的值。 int fun(int);判断一个数是否为素数的函数。 int encode( );对 x 数组中左下三角的全部元素(包括对角线上的元素)逐一进行判断,若该数不是素数则保持不变,若该数是素数,则用大于它的最小素数替换该数。 void print():按行输出矩阵的值。(3)编写一个程序测试类,说明(声明)Array 对象 A,将一个矩阵存入对象 A 中,并输出矩阵的值,使用以下测试数据:3 6 4 17 变换后的矩阵为 5 6 4 198 5 9 10 8 7 9 1012 19 7 20 12 23 11 204 14 21 23 4 14 21 29 count=6*/#include<iostream>using namespace std;class Array{private: int x[4][4]; int count;public: Array(int temp[][4], int); int fun(int); int encode(); void print();};Array::Array(int temp[][4], int n = 0){ count = n; for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { x[i][j] = temp[i][j]; } }}int Array::fun(int n){ for (int i = 2; i < n; i++) { if (n%i == 0) return 0; } return 1;}int Array::encode(){ for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { if (this->fun(x[i][j])) count++; if (this->fun(x[i][j]) == 0) continue;/* do...while 循环是 while 循环的变体。在检查while()条件是否为真之前,该循环首先会执行一次do{}之内的语句,然后在while()内检查条件是否为真,如果条件为真的话,就会重复do...while这个循环,直至while()为假。*/ do { x[i][j] += 2; } while (this->fun(x[i][j]) == 0); } } return 0;}void Array::print(){ for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { cout << x[i][j] << '\t'; } cout << endl; } cout << "count=" << count << endl;}int main(){ int a[4][4] = { { 3,6,4,17 },{ 8,5,9,10 },{ 12,19,7,20 },{ 4,14,21,23 } }; Array arr(a); arr.print(); arr.encode(); arr.print(); system("pause"); return 0;}
阅读全文
0 0
- 类实现二维数组素数自增
- 类实现求一维数组中素数平均值
- C++实现一个二维数组类
- js 二维数组实现
- 二维动态数组实现
- Vector二维数组实现
- python实现二维数组
- malloc 实现二维数组
- 动态二维数组实现
- vector 实现二维数组
- HightChart实现二维数组
- vector实现二维数组
- 实现二维数组排序
- 在C语言中实现动态分配二维数组【转自iTango】
- 动态分配二维数组的实现
- 二维数组实现行列转换
- 自己实现的二维数组
- 使用Vector实现二维数组
- 什么是百度索引量?什么是百度收录量?有什么区别?
- 论文仿真心得
- 盘点小米云服务的六大功能
- 输入3个学生的学号、姓名和三门功课成绩,输出平均分最高的同学
- 字符串截取
- 类实现二维数组素数自增
- Collections.sort排序
- 简单搭建一个ES6语法测试环境
- MYSQL数据库proxysql配置,实现读写分离
- Spark算子(六)
- CentOS 镜像大全
- 非托管环境语言(c,c++)和托管环境语言(c#,java)的编译过程差别
- 利用Bitmap实现图片放大效果(项目中的drawable路径图片,内存卡中的图片)
- debian系统下安装ssh