把握命运,追逐梦想

对自己所做的事要有兴趣,同时还要能够坚持不懈

统计

留言簿(1)

阅读排行榜

评论排行榜

行之和,列之和相等

#include<stdio.h>
#include
<memory.h>

int main()
{
    
int num  = 0;
    
while(1)
    
{
        printf(
"请输入矩阵每边的数字个数(个数必须大于1的奇数):");    
        scanf(
"%d",&num);
        
if(num>1 && num%2 == 1)
        
{
            
break;
        }

        
else
        
{
            printf(
"个数必须是大于1的奇数\n");
        }

    }


    
int *matrix  = new int[num*num];

    memset(matrix,
0,num*num*sizeof(int));

    
int row = 0,col = 0;
    row 
= 0;
    col 
= (num-1)/2;
    
int i = 1;

    
while( i <= num*num)
    
{
        
if(col<0)
        
{
            col 
= col+num;
        }

        col 
= col%num;
        
if(row<0)
        
{
            row 
= row+num;
        }

        row 
= row%num;

        
if(matrix[row*num+col] != 0)
        
{
            row 
+=2;
            
            col
--;
            
        }

        
else
        
{
            matrix[row
*num+col]= i;
            row
--;
            col
++;
            i
++;
        }

    }


    
int ii = 0,jj =0;
    
for(; ii*num+jj<num*num; jj= ++jj%num)
    
{
        
if(jj == num-1)
        
{
            printf(
"%d\n",matrix[ii*num+jj]);
            ii
++;
        }

        
else
        
{
            printf(
"%d\t",matrix[ii*num+jj]);
        }

    }


    
return 0;
}

posted on 2009-07-30 13:21 把握命运 阅读(109) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理