标题:输出结果如何别显示,请老师们帮忙看看。谢谢!!
取消只看楼主
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
结帖率:93.33%
已结贴  问题点数:5 回复次数:7 
输出结果如何别显示,请老师们帮忙看看。谢谢!!
如下一段代码:
#include <stdio.h>
int main()
{
    int number;
    printf("输入一个整数:");
    while (scanf("%d", &number))
        {
        int a[16] = {0};
        int i = 0, n = 0;
        while(number)
            {
                a[i++] = number%2;
                number /= 2;
             }
        for (i--; i>=0; i--)
                 {
                     printf("a[%d]=%d ", n++, a[i]);
                     
            }   
        printf("\n");
        }
    return 0;
}
运行是正确的,比如输入一个18.显示的是:
a[0]=1 a[1]=0 a[2]=0 a[3]=1 a[4]=0,
这里其值为0 和为1的值都显示在一排了,如何修改使其为0的值和为1的值分开来显示,就如同这样:
a[1]=0  a[2]=0 a[4]=0
a[0]=1  a[3]=1
同时对应的a[i]还不能错,再举个例:
输入144
要显示如下就好了:
a[1]=0  a[2]=0 a[4]=0 a[5]=0 a[6]=0 a[7]=0
a[0]=1  a[3]=1
搜索更多相关主题的帖子: 输出 显示 int number 输入 
2017-11-30 15:19
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
得分:0 
可以
2017-11-30 16:09
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
得分:0 
#include <stdio.h>
int main()
{
    int number;
    printf("输入一个整数:");
    while (scanf("%d", &number))
        {
        int a[16] = {0};
        int i = 0, n = 0,m=0;
        while(number)
            {
                a[i++] = number%2;
                printf("%d\t",a[i-1]);
                number /= 2;
             }
         m=i-1;
         n=m;
         i=m;
          printf("\n");
        for (; i>=0; i--)
                 {
                    if(a[i])continue;
                     printf("a[%d]=%d ", n-i, a[i]);
            }   
        printf("\n");
        i=m;
        for (; i>=0; i--)
                 {
                     if(!a[i])continue;
                     printf("a[%d]=%d ", n-i, a[i]);
                  }   
        }
    return 0;
}
但是,这样,还有点小小的问题,还要继续努力。
2017-11-30 23:17
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
得分:0 
上面的程序运行后,有点小问题就是:假如输入16.显示的二进制数本来应该是10000,但却变成了00001,与需要的刚好反过来了,不知道该怎么改过来。
2017-12-02 22:04
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
得分:0 
真的不能改吗?
2017-12-03 12:56
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
得分:0 
不对,那样根本不能解决问题。
2017-12-03 22:42
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
得分:0 
我就是不会啊。你会吗?教教我。
2017-12-04 15:25
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
得分:0 
也不对
2017-12-04 18:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-482956-1-1.html




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

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