Chinaunix首页 | 论坛 | 博客
  • 博客访问: 703601
  • 博文数量: 126
  • 博客积分: 2944
  • 博客等级: 上校
  • 技术积分: 1160
  • 用 户 组: 普通用户
  • 注册时间: 2005-02-17 11:09
个人简介

文章分类

全部博文(126)

文章存档

2022年(1)

2018年(1)

2017年(5)

2016年(5)

2013年(5)

2012年(21)

2011年(24)

2010年(1)

2009年(2)

2008年(12)

2007年(6)

2006年(19)

2005年(24)

分类: C/C++

2006-03-01 00:02:40

依稀见过这个说法,现举例如下:做程序求一整数的奇偶位之和。

#include

void fun(int i, int b[2]);

int main()
{
    int i;

    int b[2] = {0,0};

    scanf("%d",&i);

    fun(i,b);

    printf("odd=%d, even=%d\n",b[0],b[1]);

    return 0;
}

void fun(int i, int b[2])
{
    int flag = 0;

    while(i > 9){
        flag ^= 1;
        if(1 == flag)
            b[0] += (i % 10);
        else
            b[1] += (i % 10);
        i = (i - (i % 10)) / 10;
    }

    if(0 == flag)
        b[0] += i;
    else
        b[1] += i;

    return;
}

当然,用指针也可以:

#include

void fun(int i, int (*b)[2]);

int main()
{
    int i;

    int b[2] = {0,0};
    int (*p)[2] = &b;

    scanf("%d",&i);

    fun(i,p);

    printf("odd=%d, even=%d\n",b[0],b[1]);

    return 0;
}

void fun(int i, int (*p)[2])
{
    int flag = 0;

    while(i > 9){
        flag ^= 1;
        if(1 == flag)
            (*p)[0] += (i % 10);
        else
            (*p)[1] += (i % 10);
        i = (i - (i % 10)) / 10;
    }

    if(0 == flag)
        (*p)[0] += i;
    else
        (*p)[1] += i;

    return;
}

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