c++自己编的一道编程题,一塌糊涂,帮忙找一下错误
题目:建立一个类matrix,生成并显示一个螺旋方阵,如:12341213145111615610987起始数置于方阵的左上角,然后顺时针从外向里递增初始数旋转填数。具体...
题目:
建立一个类matrix,生成并显示一个螺旋方阵,如:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
起始数置于方阵的左上角,然后顺时针从外向里递增初始数旋转填数。
具体要求:
(1)私有成员:
int a[20][20]:储存螺旋方阵的二维数组
int startnum:螺旋方阵的起始数
int n:存放方阵的层数
(2)共有成员函数
matrix(int s;int m):初始化startnum和n
void prosess():生成起始数为starnum的n行螺旋方阵
void print():输出螺旋方阵
(3)在主程序定义matrix类的对象t对该类进行测试
#include<iostream.h>
class matrix{
int a[20][20];
int startnum,s1;
int n,d;
public:
matrix(int s,int m){
startnum=s1=s;n=d=m;
}
void prosess(){
int i=0,j=0, b=0;
while(startnum!=s1+d*d-1){
for(;j<n;j++){
a[i][j]=startnum++;
j--;}
for(i++;i<n;i++){
a[j][i]=startnum++;
i--;}
for(i--;i>=b;i--){
a[j][i]=startnum++;
i++;}
b++;
for(j--;j>=b;j--){
a[j][i]=startnum++;
j++;}
i++;n--;
}
}
void print(){
for(int i=0;i<d;i++){
for(int j=0;j<d;j++)cout<<a[i][j]<<'\t';
cout<<'\n';
}
}
};
void main(){
matrix ma(1,5);
ma.prosess();
ma.print();
}
调试时直接没有结果输出 展开
建立一个类matrix,生成并显示一个螺旋方阵,如:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
起始数置于方阵的左上角,然后顺时针从外向里递增初始数旋转填数。
具体要求:
(1)私有成员:
int a[20][20]:储存螺旋方阵的二维数组
int startnum:螺旋方阵的起始数
int n:存放方阵的层数
(2)共有成员函数
matrix(int s;int m):初始化startnum和n
void prosess():生成起始数为starnum的n行螺旋方阵
void print():输出螺旋方阵
(3)在主程序定义matrix类的对象t对该类进行测试
#include<iostream.h>
class matrix{
int a[20][20];
int startnum,s1;
int n,d;
public:
matrix(int s,int m){
startnum=s1=s;n=d=m;
}
void prosess(){
int i=0,j=0, b=0;
while(startnum!=s1+d*d-1){
for(;j<n;j++){
a[i][j]=startnum++;
j--;}
for(i++;i<n;i++){
a[j][i]=startnum++;
i--;}
for(i--;i>=b;i--){
a[j][i]=startnum++;
i++;}
b++;
for(j--;j>=b;j--){
a[j][i]=startnum++;
j++;}
i++;n--;
}
}
void print(){
for(int i=0;i<d;i++){
for(int j=0;j<d;j++)cout<<a[i][j]<<'\t';
cout<<'\n';
}
}
};
void main(){
matrix ma(1,5);
ma.prosess();
ma.print();
}
调试时直接没有结果输出 展开
2个回答
2016-01-03
展开全部
题干不详,无法解答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询