问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言 求解 二维数组的回形遍历

发布网友 发布时间:2022-04-29 05:34

我来回答

3个回答

热心网友 时间:2022-06-19 18:21

你难道想实现这样的效果?

 

还是想实现这样的效果?

 

以下代码实现的是第一种效果:

 

#include <stdio.h>

int main()

{

 #define ROW 100 

 int matrix[ROW][ROW]={0};

 int i,j;

 

 int row,col,tol;

 int left,top,right,bottom;

 

 row=5;col=5;

 for(i=0;i<row;i++)

 {

  for(j=0;j<col;j++)

  {

   matrix[i][j]=i*col+j;

  }

 }

 

 ///////////////////////////////

 // printf("请输入行和列,如(5 5):");

 // fflush(stdin);scanf("%d %d", &row, &col);

 // if(row > ROW || col >ROW) 

 // {

  // printf("别输入太大的数,最大只能100\n");

  // return 0;

 // }

 // printf("那么请逐个输入数据吧\n");

  // for(i = 0; i < row; i++)

  // { 

   // for(j = 0; j < col; j++)

   // { 

   // printf("数据%2d:",i*col+j);

   // fflush(stdin);scanf("%d",&(matrix[i][j])); 

   // } 

  // }

 ////////////////////////////

 

 for(i=0;i<row;i++)

 {

  for(j=0;j<col;j++)

  {

   printf("%3d ",matrix[i][j]);

  }

  printf("\n");

 }

 printf("\n===结果=====:\n");

 tol=0;

 left=0;top=0;

 right=col;bottom=row;

 

 // top

 if(left<right)

 {

  for(j=left;j<right;j++)

  {

   tol++;

   printf("%3d ",matrix[top][j]);

  }

  printf("\n");

 }

 

 for(i=1;i<row-1;i++)

 {

  for(j=0;j<col;j++)

  {

   // left

   if(j==0)

   {

    printf("%3d ",matrix[i][j]);

   }

   // right

   else if(j==col-1)

   {

    printf("%3d ",matrix[i][j]);

   }

   // 中间不输出是吧。。。那以空格代替好了

   else

   {

    printf("    ",matrix[i][j]);

   }

  }

  printf("\n");

 }

 // bottom

 if(top+1 != bottom)

 {

  for(j=right;--j>left-1;)

  {

   tol++;

   printf("%3d ",matrix[bottom-1][j]);

  }

  printf("\n");

 }

 return 0;

}

追问例子输入

4 4 1 2 3 412 13 14 511 16 15 610 9 8 7

例子输出

12345678910111213141516

但是这个只能对于行数和列数相同的可以,如果行数和列数不相同怎么办

追答

还有这种情况?那我上机看看我的代码的执行:

 

===以下是 5行 8列的结果,输出也正常啊。。。

 

不信,你其实可以复制我写的代码,上机试试的。

(怎么有写好的代码你不复制,而要一个字一个字地输入?)

热心网友 时间:2022-06-19 18:21

#include <stdio.h>
#define ROW 100
#define COL 100
int main(){
 int row, col, matrix[ROW][COL];
 int xx_row, sx_row, xx_col, sx_col;
 int i, j;
 
 scanf("%d %d", &row, &col);
 for(i = 0; i < row; i++){
 for(j = 0; j < col; j++){
 scanf("%d",&(matrix[i][j]));
 }
 }
    xx_row = 0;
    sx_row = row-1;
    xx_col  = 0;
    sx_col = col-1;
 

    while( 1 ){
for(j = xx_col; j <= sx_col; j++){
 printf("%d\n", matrix[xx_row][j]);
}
xx_row++;
if (xx_row>sx_row)
 break;
for(i = xx_row; i <= sx_row; i++){
 printf("%d\n", matrix[i][sx_col]);
}

sx_col--;
if (xx_row>sx_col)
 break;
for(j = sx_col; j >= xx_col; j--){
 printf("%d\n", matrix[sx_row][j]);
}

sx_row--;
if (xx_row>sx_row)
 break;
for(i = sx_row; i >= xx_row; i--){
 printf("%d\n", matrix[i][xx_col]);
}

   xx_col ++;
if (xx_col>sx_col)
 break;
    }
system("pause");
 return 0;
}

热心网友 时间:2022-06-19 18:22

简单嘛,输出的时候判断行数,如果为第一行和第三行,则全部显示,如果是第二行 ,则显示第一个和最后一个,其他都输出空格。追问不单单是这一个例子的,就是这个程序只对于行数和列数相同的可以正常输出,如果不相同就会有一部分数据没有输出

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
爱普生ME100不能打印 想去锦州西餐厅吃饭,环境好能拍照的,我主要是想拍照。。。食物很精致... Ipad Air连接电脑后itunes不显示设备 SuperJunior-it's you歌词 super junior lt's you的歌词翻译成中文? ...没钱,出来26了,究竟该不该去当兵?退役以后找工作 高中毕业生去入伍了没有考大学,请问退伍还可以继续升学历吗?有什么途径... 什么是免漆家具? 家里用免漆板打家具需多长时间好住进去 脐带血干细胞移植介绍 C++五子棋判定输赢,横线、竖线、左斜线、友斜线,以上四种判定,以及流程图。 看看我用C++写的矩阵乘法错哪了 跪求一个单机版五子棋怎么设计和实现,最好是C语言版的 col这个符号什么意思!!! 别人能凭我的手机号通过移动公司查到我的身份证资料吗- 问一问 矩阵乘法代码…… 如何使用C# 语言实现螺旋加上蛇形的矩阵动态生成?当n=4时,矩阵如此 查找iphone为啥icolid不运行 好玩的解谜游戏有哪些,求大神解答 有什么好玩的手机解密游戏,分享一下 公司因员工打了卡偷偷回宿舍睡觉而辞退合法吗? 楼主直播的解谜游戏有哪些 劳动者在上班时间违反公司规定(比如:打瞌睡)被辞退有补偿吗? 带剧情的单机解谜游戏 保安工作岗打瞌睡被辞退有补偿吗? 有没有好玩的冒险解谜游戏?推荐几个经典的 公司以经常上班睡觉迟到,开除员工,应该要怎么赔偿! 解谜冒险单机游戏,你玩过哪几个? 员工上班睡觉,公司要辞退他吗? 企业员工手册规定员工在岗睡觉可以解雇不付补偿金可以吗? 二维数组右上左下遍历 提示wrong answer ,不知道哪错了,跪求解答 数据结构中,哨兵 的名字是为什么而来的呢 c++输出螺旋方阵,大神指导一下,我的哪里错了。。。急!! 在poi 中OPCPackage.open() 是什么函数?OPCPackage这个类用来干嘛... c++中,二维数组中第i行第j列的元素,对应到一维数组中其下标是?我是菜鸟啊,麻烦各位了,谢谢 虎皮鹦鹉幼崽吃什么 三四个月大的虎皮鹦鹉喜欢吃什么? 刚出壳的虎皮鹦鹉吃什么? 三四个月的黄云斑虎皮鹦鹉喜欢吃什么? 为什么冬天洗澡的时候洗了两遍头发,可是头发干了之后会有好多头皮屑 刚刚出生的小虎皮鹦鹉吃什么呀,应注意些什么 送给老人什么礼物合适? 虎皮鹦鹉刚出生的幼鸟吃什么 虎皮鹦鹉生了幼崽应该喂什么食物 每到冬天刚洗完头就有很多头皮屑 中老年人喜欢什么礼物? 适合买给老人的礼物? 坐月子什么时候能洗澡洗头 坐月子期间,一般几天就可以正常洗澡? 产妇坐月子期间什么时候能洗澡洗头