| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2218 人关注过本帖
标题:数字旋涡问题
只看楼主 加入收藏
ggggiaqgyd
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2007-10-13
收藏
 问题点数:0 回复次数:20 
数字旋涡问题
老师出了一道题,但是想了三个点没想出来
题是这样的,假如输入2
输出12
    43
输入3
输入123
    894
    765
很难呀!     帮忙解决一下
搜索更多相关主题的帖子: 旋涡 数字 
2008-03-15 18:55
lonmaor
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:郑州
等 级:版主
威 望:75
帖 子:2637
专家分:6423
注 册:2007-11-27
收藏
得分:0 
如果是4呢?
2008-03-15 19:00
qfyzy
Rank: 2
等 级:论坛游民
威 望:1
帖 子:380
专家分:86
注 册:2008-2-17
收藏
得分:0 
是螺旋数字方阵吧,是个顺时针的.很久前写过个
#include <stdio.h>
#include <stdlib.h>
int movei[4]={1,0,-1,0};
int movej[4]={0,1,0,-1};
int print(int*,int);
int clock(int,int *);                                             
int print(int *pa,int n){            
    int i,j;                                          
    for(i=0;i<=n-1;i++){                                 
       for(j=0;j<=n-1;j++)
          printf("%4d",*(pa+i*n+j));
       printf("\n");
    }
    printf("\n");
    return 0;
}
int clock(int n,int *a){
    int i=0,j=0,t=1,x1=n,y1=n,x2=-1,y2=0,direct=1;
    while(t<=n*n){
                  *(a+i*n+j)=t++;
                  i+=movei[direct];
                  j+=movej[direct];
                  if(j==x1&&i==y2){
                                  j--;
                                  i++;
                                  direct=0;
                                  x1--;
                                  continue;
                                 
                  }
                  if(j==x1&&i==y1){
                                   j--;
                                   i--;
                                   y1--;
                                   direct=3;
                                   continue;
                  }
                  if(j==x2&&i==y1){
                                   j++;
                                   i--;
                                   x2++;
                                   direct=2;
                                   continue;
                  }
                  if(j==x2&&i==y2){
                                   i++;
                                   j++;
                                   y2++;
                                   direct=1;
                  }
    }                                
    return 0;
}                                                                                                                 
int main()
{
  int a[900]={0},n;
  scanf("%d",&n);
  clock(n,&a[0]);
  print(&a[0],n);
  system("PAUSE");    
  return 0;
}

当对C的经验增加时,它会显的很好用.----Dennis M Ritche如是说
2008-03-15 19:03
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
这个是程序员考试书上的..可以去找看看啊

学习需要安静。。海盗要重新来过。。
2008-03-15 19:05
ggggiaqgyd
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2007-10-13
收藏
得分:0 
感觉步骤这么多呢?
2008-03-15 19:31
ggggiaqgyd
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2007-10-13
收藏
得分:0 
也没有输入的!
怎么搞的,好像很难的样子!
2008-03-15 19:36
qfyzy
Rank: 2
等 级:论坛游民
威 望:1
帖 子:380
专家分:86
注 册:2008-2-17
收藏
得分:0 
[bo]以下是引用 [un]ggggiaqgyd[/un] 在 2008-3-15 19:36 的发言:[/bo]

也没有输入的!
怎么搞的,好像很难的样子!

什么叫也没有输入的?

当对C的经验增加时,它会显的很好用.----Dennis M Ritche如是说
2008-03-15 19:38
ggggiaqgyd
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2007-10-13
收藏
得分:0 
假如输入5那就是5*5的方阵呀
2008-03-15 19:55
qfyzy
Rank: 2
等 级:论坛游民
威 望:1
帖 子:380
专家分:86
注 册:2008-2-17
收藏
得分:0 
我写的那个应该没有问题

当对C的经验增加时,它会显的很好用.----Dennis M Ritche如是说
2008-03-15 20:01
蓝色神话
Rank: 2
等 级:论坛游民
威 望:1
帖 子:404
专家分:24
注 册:2006-5-11
收藏
得分:0 
考点是考算法吗?
2008-03-15 20:16
快速回复:数字旋涡问题
数据加载中...
 
   



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

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