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();
}
调试时直接没有结果输出
展开
 我来答
ymj4645
2011-09-25 · TA获得超过3494个赞
知道小有建树答主
回答量:580
采纳率:37%
帮助的人:245万
展开全部
for(;j<n;j++){
a[i][j]=startnum++;
j--;}
这样写不会死循环吗?
更多追问追答
追问
哎呀,蛋疼啊,多谢提醒!不过调试结果还是有几个数输出不符合要求,能再帮忙看看吗
追答
嗯 你把代码给下,我只能尽量看看
匿名用户
2016-01-03
展开全部
题干不详,无法解答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式