| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2238 人关注过本帖
标题:新手求助,谢谢!编译通过,但只能输出0
取消只看楼主 加入收藏
x123698745
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-12-21
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
新手求助,谢谢!编译通过,但只能输出0
#include<stdio.h>
int main()
{
    int a[1000000]={0},b[1000000]={0};
    int i=0, x, y, z, n=1, j=1,num=0;
    scanf("%d",&x);
    y=x;
    z=x;
    while (y>0)
    {
        n++;
        y=y/10;
    }
    for (i = 0;i < n;i++)
    {
        a[i] = z%10;
        z = z/10;
    }
    for (i = 0;i < n;i++)
    {
        if ((a[i] % 2)!= (i+1) % 2)
        b[i] = 1;
    }
    for (i = 0;i < n;i++)
    {
        num = num+(b[i] * j);
        j = j*2;
        i++;
    }
    printf("%d\n",num);
    return 0;
}



顺便说一下,这是一道数字特征题,谢谢各位大神的帮助!

[此贴子已经被作者于2015-12-21 21:31编辑过]

搜索更多相关主题的帖子: include 
2015-12-21 21:11
x123698745
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-12-21
收藏
得分:0 
那个i++是写多了的,谢谢啊,原题在这

对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值。对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推。这个整数在第n位上的数字记作x,如果x和n的奇偶性相同,则记下一个1,否则记下一个0。按照整数的顺序把对应位的表示奇偶性的0和1都记录下来,就形成了一个二进制数字。比如,对于342315,这个二进制数字就是001101。
这里的计算可以用下面的表格来表示:
数字

数字             3   4   2   3   1   5
数位             6   5   4   3   2   1
数字奇偶     奇 偶 偶 奇 奇 奇
数字奇偶     偶 奇 偶 奇 偶 奇
奇偶一致     0   0   1   1   0   1

你的程序要读入一个非负整数,整数的范围是[0,1000000],然后按照上述算法计算出表示奇偶性的那个二进制数字,输出它对应的十进制值。
提示:将整数从右向左分解,数位每次加1,而二进制值每次乘2。
2015-12-23 13:43
x123698745
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-12-21
收藏
得分:0 
运行能通过,不过在函数里面调用自己是什么意思啊
2015-12-25 00:37
x123698745
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-12-21
收藏
得分:0 
了解,多谢各位大神相助
2015-12-26 13:02
快速回复:新手求助,谢谢!编译通过,但只能输出0
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017431 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved