}
}
voidmain(){
float
b[3][13]={{1,1,1,1,0,4,4,5,2,4,90,89},{1,0,1,1,1,4,3,4,3,4,85,75},{1,1,0,1,1,3,4,5,2,4,95,80}};
Arrayarr(b,3);
arr.fun();
arr.print();
}
二、二维数组问题
2016春VC02
1.素数算法,
2.从大到小排序算法
3.数据交换
【题目】试定义一个类Array,首先求各列元素中的合数(非素数)之和,再将数组各列以其合数之和的大小从大到小排序,具体要求如下:
(1)私有数据成员
inta[4][5]:
需要排序的二维数组。
(2)公有成员函数
Array(intt[][5],intn):
构造函数,用参数t初始化成员数组a,n表示数组t的行数。
intcomp(intn):
判断整数n是否为合数,如果是合数,返回值为1,否则返回值为0。
intsum_comp(intj):
求数组a第j列元素中所有合数之和。
voidexch(intj1,intj2):
交换数组a的第j1,j2列元素。
voidfun():
根据题意对二维数组进行列排序。
voidprint():
以矩阵的形式输出成员数组。
(3)在主函数中定义一个二维数组,并使用该数组对类Array进行测试。
输出示例:
原数组:
10125415
161781910
1112131415
1670181920
排序后的数组:
12151054
171016819
1215111314
7020161819
2015秋VC03
1.素数算法,
2.从大到小排序算法
3.数据交换
【题目】试定义一个类Array,将二维数组各行按其各行元素中所有素数之和从大到小排序,具体要求如下:
(1)私有数据成员
●inta[5][4]:
待处理的数组。
(2)公有成员函数
●Array(intt[][4],intn):
构造函数,用参数t初始化成员数组a,n
为数组t的行数。
●intprime(intn):
判断整数n是否为素数,如果是素数,返回值为1,
否则返回值为0。
●intsum_prime(inti):
求数组a中第i行元素中所有素数之和。
●voidexch(inti1,inti2):
交换数组a的第i1,i2行元素。
●voidfun():
根据题意对二维数组进行行排序。
要求排序过程中交换
数据时使用成员函数exch()。
●voidprint():
以矩阵的形式输出成员数组。
(3)在主函数中定义一个二维数组,并使用该数组对类Array进行测试。
输出示例:
原数组:
101254
1516178
19101112
13141516
70181920
排序后的数组:
19101112
70181920
1516178
13141516
101254
【要求】
打开T盘中myfc.cpp文件(空文件),编写后的源程序文件myfc.cpp必须保存在T盘的根目录下,供阅卷用。
2016秋VC04
1.从大到小排序算法
2.数据交换
【题目】试定义一个类Array,将二维数组各行按其各行元素中最大值的大小排序,具体要求如下:
(1)私有数据成员
●inta[5][4]:
需要排序的数组。
(2)公有成员函数
●Array(intt[][4],intn):
构造函数,用参数t初始化成员数组a,n
为数组t的行数。
●intmax(int*p,intn):
求指针p所指向的一维数组中n个元素的最大
值。
●voidexch(inti1,inti2):
交换数组a的第i1,i2行。
●voidfun():
根据题意对二维数组进行行排序。
提示:
利用成员函数max()
计算每行的最大元素。
●voidprint():
以矩阵的形式输出成员数组a。
(3)在主函数中定义一个二维数组,并使用该数组对类Array进行测试。
输出示例:
原数组:
101254
1516178
19101112
13141516
70181920
排序后的数组:
70181920
19101112
1516178
13141516
101254
2016秋VC05编程题
1.奇数与偶数
2.选择排序
【题目】试定义一个类Array,实现对二维数组进行按行排序的功能。
要求奇数行中的元素按升序排列,偶数行中的元素按降序排列(下标从0开始计数)。
具体要求如下:
(1)私有成员:
●inta[4][5]:
需要排序的数组。
(2)公有成员:
●Array(intt[][5],intn):
构造函数,用参数t初始化成员数组a,参
数n为t的行数。
●voidsort(int*p,intn,intf):
辅助函数,对指针p所指向的数组
排序。
其中,n为数组p中元素的个数;当参数f的值为奇数时按升序排
序,否则按降序排序。
●voidfun():
根据题意多次调用sort()函数实现成员数组a的排序。
●voidprint():
按矩阵形式输出成员数组。
(3)在主函数中给定原始数组,并用该数组对类Array进行测试。
要求输出处理前和处理后的数组。
输出示例:
原数组:
13956
76757
25456
71545
处理后数组:
96531
56777
65542
14557
【要求】
打开T盘中myfc.cpp文件(空文件),编写后的源程序文件myfc.cpp必须保存在T盘的根目录下,供阅卷用。
1.答案
#include
classArray{
private:
inta[4][5];
public:
Array(intt[][5],intn);
intcomp(intn);
intsum_comp(intj);
voidexch(intj1,intj2);
voidfun();
voidprint();
};
Array:
:
Array(intt[][5],intn){
for(inti=0;ifor(intj=0;j<5;j++)
a[i][j]=t[i][j];
}
intArray:
:
comp(intn){
for(inti=2;iif(n%i==0)break;
if(i==n)return0;
return1;
}
intArray:
:
sum_comp(intj){
ints=0;
for(inti=0;i<4;i++)
if(comp(a[i][j])==1)
s+=a[i][j];
returns;
}
voidArray:
:
exch(intj1,intj2){
for(inti=0;i<4;i++){
intd;
d=a[i][j1];
a[i][j1]=a[i][j2];
a[i][j2]=d;
}
}
voidArray:
:
fun(){
for(inti=0;i<4;i++){
for(intj=i+1;j<5;j++)
if(sum_comp(i)exch(i,j);
}
}
voidArray:
:
print(){
for(inti=0;i<4;i++){
for(intj=0;j<5;j++)
cout<cout<}
}
voidmain(){
inta[4][5]={10,12,5,4,15,6,17,8,19,10,11,12,13,14,15,16,70,18,19,20};
Arrayarr(a,4);
cout<<"原数组:
"<arr.print();
arr.fun();
cout<<"排序后的数组:
"<arr.print();
}
2.答案
#include
classArray{
private:
inta[5][4];
public:
Array(intt[][4],intn);
intprime(intn);
intsum_prime(inti);
voidexch(inti1,inti2);
voidfun();
voidprint();
};
Array:
:
Array(intt[][4],intn){
for(inti=0;ifor(intj=0;j<4;j++)
a[i][j]=t[i][j];
}
intArray:
:
prime(intn){
for(inti=2;iif(n%i==0)return0;
return1;
}
intArray:
:
sum_prime(inti){
ints=0;
for(intj=0;j<4;j++)
if(prime(a[i][j]))
s+=a[i][j];
returns;
}
voidArray:
:
exch(inti1,inti2){
for(intj=0;j<4;j++)
{
intd=a[i1][j];
a[i1][j]=a[i2][j];
a[i2][j]=d;
}
}
voidArray:
:
fun(){
for(inti=0;i<4;i++)
for(intj=i+1;j<5;j++)
if(sum_prime(i)exch(i,j);
}
voidArray:
:
print(){
for(inti=0;i<5;i++)
{
for(intj=0;j<4;j++)
cout<cout<}
}
voidmain(){
intb[5][4]={10,12,5,4,15,16,17,8,19,10,11,12,13,14,15,16,70,18,19,20};Arrayarr(b,5);
cout<<"原数组:
";
cout<arr.print();
arr.fun();
cout<<"排序后的数组:
";
cout<arr.print();
}
3.答案
#include
classArray{
private:
inta[5][4];
public:
Array(intt[][4],intn);
intmax(int*p,intn);
voidexch(inti1,inti2);
voidfun();