使用VC++6.0打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码,完成空出部分程序。函数sum(int A[NUM][NUM],int n)的功能是计算矩阵中所有非质数数字的和。 提示:函数isPrime(int n)的功能是判定当

admin2020-06-29  77

问题 使用VC++6.0打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码,完成空出部分程序。函数sum(int A[NUM][NUM],int n)的功能是计算矩阵中所有非质数数字的和。
    提示:函数isPrime(int n)的功能是判定当前数字是否为质数,如果是则返回true。
    注意:不能修改程序的其他部分,只能修改sum函数。
    试额程序:
#include
#include(cmath>
#define NUM 50
int A[NUM][NUM]=
{
{1,3,5,7,9),
{11,13,15,17,19),
{21,23,25,27,29),
{31,33,35,37,39),
{41,43,45,47,49)
};
boolisPrime(int n)
{
if(n==1)
return false;
if(n==2)
retUrn true;
for(int i=2;i(n/2;i++)
{
if(n%i==0)
return false;
}
return true;
}
int sum(int A[NUM][NUM],int n)
{
}
int main()
{
cout<return 0;
}

选项

答案int re=0; for(int i=0;i(n;i++) { for(int j=0;j(n;j++) { if(!isPrime(A[i][j])) //判断是否是素数,不是素数则累加 { re=re+A[i][j]; } } } return re:

解析 矩阵A[NUM][NUM]是二维矩阵,sum函数的参数n给出了矩阵A的具体维数,因此矩阵A中共含有n×n个有效数。A[NUM][NUM]中的元素可表示为A[j],其中i表示元素所在行数,j表示元素所在的列数,i、j分别从0到n-1范围内变化,因此设置内外两层循环可逐个遍历整个矩阵寻找非质数。函数isPrime提供了判断质数的方法,对每个元素A[j],调用函数isPrime(A[j]),判断函数的返回值是否为假,如果为假,说明不是质数,应该累加起来。
转载请注明原文地址:https://kaotiyun.com/show/SZ8p777K
0

最新回复(0)