| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 636 人关注过本帖
标题:这段代码有点儿不明白!
只看楼主 加入收藏
wzhings
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2007-1-16
收藏
 问题点数:0 回复次数:2 
这段代码有点儿不明白!
题目很简单,就是生成一个螺形的矩阵..
我略去一些小细节..只说我看不明的地方..


int main()
{
    int i,j,t;
    while(scanf("%d%d%d",&j,&i,&t)!=EOF)
         {
          int n=1,h=0,s=0, k[31][31]={{},{}};
          i--;j--;
          while(t){
                   k[s][h]=n++;
                   if((h>=s || k[s-1][h]!=0) && (h<j) && k[s][h+1]==0 )h++;
                   else if( (s<i) && k[s+1][h]==0)s++;
                   else if( h>0 && k[s][h-1]==0)h--;
                   else if( s>0 && k[s-1][h]==0)s--;
                   else break;
                   }

如果输入3 5 1 (这里1,或0代表顺,逆时针...略)
就是生成一个横5, 纵3的矩阵...
对于i--,j--,我的理解是因为数组从0开始,所以减1而与数组相符
这时的i,j调用完之后,就是2,4 了吧..
再继续执行..
h<j, s<i(都没有等号)
h,s 分别只能到1, 3才对吧.
那么真正输出的就不会是3,5的阵了..


我个人认为要是有i--,j--,就改成h<=j,s<=i
或者不要i--,j--,直接就是h<j,s<i就好了..
但是我改后,不能得到正确答案..
就各位指正...我很困惑!!!!
搜索更多相关主题的帖子: 代码 
2007-11-29 21:57
wzhings
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2007-1-16
收藏
得分:0 
没人帮忙看一下吗? ...
都等了好几天了~!!!!!

在我的眼里,这个世界是由0和1组成的!~
2007-12-01 20:35
zbqf109
Rank: 1
等 级:新手上路
帖 子:289
专家分:0
注 册:2006-12-31
收藏
得分:0 
看不明白你说的是什么意思
2007-12-01 20:43
快速回复:这段代码有点儿不明白!
数据加载中...
 
   



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

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