CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

数组问题

楼主jieyh(无影无形)2003-06-04 00:49:07 在 C/C++ / C语言 提问

怎么用c语言实现如下数组的显示?  
  24   23   22   21   20    
    9     8     7     6   19  
  10     1     0     5   18  
  11     2     3     4   17  
  12   13   14   15   16        
   
  35   34   33   32   31   30  
  16   15   14   13   12   29  
  17   4     3     2     11   28  
  18   5     0     1     10   27  
  19   6     7     8     9     26  
  20   21   22   23   24   25    
   
  ---thanks 问题点数:100、回复次数:2Top

1 楼boyfling(GGS)回复于 2003-06-04 01:44:31 得分 100

这是我学c语言正式编的第一个程序,很有意思。那个时候写了30行左右,几个循环就写完了,变量全是a,b,c,i,j,k这些,保证谁也看不懂那种。  
  ^_^,有兴趣刚才重写了一个。老了,30行的功夫不在了。  
  代码如下:(TC3.0编译通过)Top

2 楼boyfling(GGS)回复于 2003-06-04 01:46:08 得分 0

#include   <stdio.h>  
  #include   <conio.h>  
   
  #define N 8  
   
  #define RIGHT 0  
  #define DOWN 1  
  #define LEFT 2  
  #define UP 3  
   
   
  int   main()  
  {  
  int   Array[N][N];  
  int   iPosX;  
  int   iPosY;  
  int   iWay=RIGHT;  
  int   iStep=N*N-1;  
   
  for(   iPosX=0;   iPosX<N;   iPosX++   )  
  for(   iPosY=0;   iPosY<N;   iPosY++   )   Array[iPosX][iPosY]=-1;  
   
  Array[0][0]=iStep;  
  iPosX=0;  
  iPosY=0;  
   
  while(   iStep   >=   1   )  
  {  
  switch(   iWay   )  
  {  
  case   RIGHT:  
        iPosY++;  
        if(   iPosY   >=   N-1   ||   Array[iPosX][iPosY+1]   !=   -1   )   iWay=DOWN;  
        break;  
  case   DOWN:  
        iPosX++;  
        if(   iPosX   >=   N-1   ||   Array[iPosX+1][iPosY]   !=   -1   )   iWay=LEFT;  
        break;  
  case   LEFT:  
        iPosY--;  
        if(   iPosY   <=   0   ||   Array[iPosX][iPosY-1]   !=   -1   )   iWay=UP;  
        break;  
  case   UP:  
        iPosX--;  
        if(   iPosX   <=   0   ||   Array[iPosX-1][iPosY]   !=   -1   )   iWay=RIGHT;  
        break;  
  }  
   
  Array[iPosX][iPosY]=--iStep;  
  }  
   
  clrscr();  
   
  for(   iPosX=0;   iPosX<N;   iPosX++   )  
  {  
  for(   iPosY=0;   iPosY<N;   iPosY++   )  
  printf("%3d",   Array[iPosX][iPosY]);  
  printf("\n");  
  }  
   
  getch();  
   
  return   0;  
  }Top

相关问题

  • 数组
  • 数组
  • 数组??
  • 数组
  • 数组?
  • 数组
  • 安全数组
  • 多维数组??
  • 关于数组
  • 数组问题

关键词

  • iposy
  • iposx
  • iway
  • array
  • case

得分解答快速导航

  • 帖主:jieyh
  • boyfling

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo