注册 登录
编程论坛 C++教室

欢迎修改

從霝開匙 发布于 2007-09-21 16:07, 427 次点击

在一个群里的题目自己编得乱七八糟的,忘给个程序学习学习
做个题目
1 1 1 1 1 1 1 1 1
1 2 2 2 2 2 2 2 1
1 2 3 3 3 3 3 2 1
1 2 3 4 4 4 3 2 1
1 2 3 4 5 4 3 2 1
1 2 3 4 4 4 3 2 1
1 2 3 3 3 3 3 2 1
1 2 2 2 2 2 2 2 1
1 1 1 1 1 1 1 1 1


这个用数组来做,小弟写了个很复杂,希望高手能改简单点,或给个简单的学习下,有个问题数组初始化中ai[j][i],这个ij必须是确定值对吗?
这个题目里面能不能输入任意的方阵啊

#include<iostream>
using namespace std;
int i,j;
int n;

void main()
{
int ai[9][9];
for(i=0;i<=4;i++)
{
for(j=0;j<=4;j++)
{
ai[i][j]=(i<j?(i+1):(j+1));
cout<<ai[i][j];}

for(j=5;j<9;j++)
{ai[i][j]=(i<(9-j)?(i+1):(9-j));
cout<<ai[i][j];}
cout<<endl;


}
for(i=5;i<9;i++)
{
for(j=0;j<=4;j++)
{
if((9-i)!=j)
ai[i][j]=((9-i)<j?(9-i):(j+1));
else
ai[i][j]=(9-i);
cout<<ai[i][j];
}

for(j=5;j<9;j++)
{ai[i][j]=((9-i)<(9-j)?(9-i):(9-j));
cout<<ai[i][j];}
cout<<endl;

}}

[此贴子已经被作者于2007-9-21 16:10:36编辑过]

5 回复
#2
远去的列车2007-09-21 16:19
https://bbs.bc-cn.net/viewthread.php?tid=147967&extra=&page=24

我写了个在233楼,稍微改一下就行

思路:从外圈开始一路赋值,每个圈分四段(相等个数)
#3
從霝開匙2007-09-21 17:10
谢谢,保留还没看到函数,有的地方看不明白先保留呵呵
#4
coachard2007-09-21 19:00
如果这题不死抠时间,那代码将会变得很简单。。。
#5
etherli2007-09-21 23:00

我利用图形是对称的特征编了一个程序 有哪些需要改进的地方请各位高手指教

#include<iostream.h>

void main()
{
int i,j;
int mat[9][9];
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(j<i)
mat[i][j]=j+1;
else
mat[i][j]=i+1;
}
}

for(i=0;i<5;i++)
for(j=5;j<9;j++)
mat[i][j]=mat[i][8-j];

for(i=5;i<9;i++)
for(j=0;j<9;j++)
mat[i][j]=mat[8-i][j];

for(i=0;i<9;i++)
{
for(j=0;j<9;j++)
cout<<mat[i][j]<<" ";
cout<<endl;
}
}

#6
海子星竹2007-09-22 21:13

值得学习

1