杂记,螺旋打印数组。

//

//  main.c

//  char_spiral

//

//  Created by qianfeng on 14-11-1.

//  Copyright (c) 2014年 qianfeng. All rights reserved.

//


#include<stdio.h>

#include<stdlib.h>



void swap(int *p,int index,int max);

int main(int argc,constchar * argv[]) {

   // insert code here...

   int index =0;

   int max =0;

   int flag =0;

   scanf("%d",&index);

    flag = index;

   scanf("%d",&max);

   if (max>(index*index)) {

       perror("max bigmuch!");

    }

   int spiral[index][index];

    

//    swap(spiral[0],index,max);

    

   int i =0;

   int j =0;

   int xs =0,ys =0;

   int min =1;

   for(i =0;i<1000;i++){

        

       printf("1.xs = %d ys = %d\n",xs,ys);

       //1.

       for(j =0;j<index;j++,min++){

            spiral[xs][ys++] = min;

           if (index==0||max==0) {

               break;

            }

           printf("spiral[%d][%d]%d\n",xs,ys-1,spiral[xs][ys-1]);

        }

        xs++;

        ys--;

       //2.

       printf("2.xs = %d ys = %d\n",xs,ys);

        index--;

       for(j =0;j<index;j++,min++){

            spiral[xs++][ys] = min;

           if (index==0||max==0) {

               break;

            }

        }

        xs--;

        ys--;

        

       //3.

       printf("3.xs = %d ys = %d\n",xs,ys);

       for(j =0;j<index;j++,min++){

            spiral[xs][ys--] = min;

           if (index==0||max==0) {

               break;

            }

        }

        ys++;

        xs--;

        

       //4.

       printf("4.xs = %d ys = %d\n",xs,ys);

        index--;

       for(j =0;j<index;j++,min++){

            spiral[xs--][ys] = min;

           if (index==0||max==0) {

               break;

            }

        }

        

        

        xs++;

        ys++;

        

       if (index==0||min>max) {

           break;

        }


    }

   for(int hor =0;hor<flag;hor++){

       for (int ver =0; ver<flag; ver++) {

           printf(" (%d)%d ",ver,spiral[hor][ver]);

        }

       printf("\n");

    }

   return0;

}

void swap(int* p,int index,int max){

    


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值