| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 502 人关注过本帖
标题:求助! 按要求写个打印算法。
只看楼主 加入收藏
changyawei
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2005-11-3
收藏
 问题点数:0 回复次数:5 
求助! 按要求写个打印算法。
图片附件: 游客没有浏览图片的权限,请 登录注册

大家共同研究一下,怎样写一个算法?下面是一个二维数组。
要求从中点按照下图标志,显示数组中的元素。
2007-04-24 07:53
I喜欢c
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:64
帖 子:1749
专家分:0
注 册:2007-3-2
收藏
得分:0 

中间那棵为1,然后2,3...
是这样打印出来吗?


 我是指针,却丢失了目标地址!          我是循环,却缺少了结束条件!      我是函数,却没有人来调用!   
2007-04-24 12:54
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 

[CODE]#include <iostream>
using namespace std;

void draw(int a[],int b[][9],int max,int i,int j){
static int index = 0;
if (max > 1){
draw(a,b,(max = max - 2),--i,--j);
max = max + 2;++i;++j;
b[i][++j] = a[index++];
int count;
for (count = 0;count < max-1-1;++count)
b[--i][j] = a[index++];
for (count = 0;count < max-1;++count)
b[i][--j] = a[index++];
for (count = 0;count < max-1;++count)
b[++i][j] = a[index++];
for (count = 0;count < max-1;++count)
b[i][++j] = a[index++];
}
else
b[++i][++j] = a[index++];
}

int main(){
const int max = 9;
int a[max*max];
for (int i = 0;i < max*max;++i){
a[i] = i + 1;
cout << a[i] << " ";
}
cout << endl << endl;;

int b[max][max];

draw(a,b,max,max-2,max-2);
//display
for (int i = 0;i < max;++i){
for (int j = 0;j < max;++j){
if (b[i][j] < 10)
cout << " ";
cout << b[i][j] << " ";
}
cout << endl;
}

system("pause");
return 0;
}[/CODE]


写了一个,花了点时间!

一起研究研究


Fight  to win  or  die...
2007-04-24 16:02
游乐园
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:671
专家分:0
注 册:2006-11-1
收藏
得分:0 

判断行列之间的变化 用flag来指示方向

程序代码:

#include<iostream>
#include<iomanip>
using namespace std;
enum {row = 9,col = 9};

int main()
{
register int m = 0,n = 0;

int a[row][col],flag = 0;

for(int data = row*col; data > 0; --data)
{
a[m][n] =data;

switch(flag)
{
case 0 :++n == (col-1-m)?flag = 1:flag = 0;break;

case 1 :++m == (row-1-(col-n-1))?flag = 2:flag = 1;break;

case 2 :--n == (row-1-m)?flag = 3:flag = 2;break;

case 3 :--m == n+1?flag = 0:flag = 3;break;

default:break;
}
}

for(m=0;m<row;++m,cout<<endl<<endl)
for(n=0;n<col;++n) cout<<setw(4)<<a[m][n];
return 0;
}


unicorn-h.spaces. ◇◆ sava-scratch.spaces.
2007-04-24 17:52
changyawei
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2005-11-3
收藏
得分:0 

我试一试。

2007-04-25 19:54
markshao1986
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-4-23
收藏
得分:0 
高手
2007-04-27 22:34
快速回复:求助! 按要求写个打印算法。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013586 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved