Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2373453
  • 博文数量: 145
  • 博客积分: 8668
  • 博客等级: 中将
  • 技术积分: 3922
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-09 21:21
个人简介

work hard

文章分类

全部博文(145)

文章存档

2016年(1)

2015年(1)

2014年(1)

2013年(12)

2012年(3)

2011年(9)

2010年(34)

2009年(55)

2008年(20)

2007年(9)

分类: C/C++

2008-10-28 17:04:22

朋友问我能否用一层循环实现隔行隔列取出二维数组中的数据。CU上ID为gawk的朋友给出了解答的方法。我这里有写了一个完整的测试例程.
 
源代码如下:
 

#include <stdio.h>

int main(void)
{
    int a[5][5] = {
        {1,2,3,4,5},
        {6,7,8,9,10},
        {3,2,2,4,5},
        {6,7,8,9,10},
        {1,2,3,4,6}
        };
    int col = 5, line = 5;
    int i,j;
    
    for( i=0,j=0;j<col&&i<line;j+=2)
    {    
        printf("%d ",a[i][j]);
        (j+2>col&&i+2<line)?(i+=2,j=-2,printf("\n")):0;
    }
    printf("\n");
    return 0;
}

程序执行结果如下:

[root@localhost tmp]# ./a.out
1 3 5
3 2 5
1 3 6
[root@localhost tmp]#

其实整个算法的实现靠的就是判断行和列的index,并且打印符号要求的数据即可。

 

阅读(3827) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~