快乐打码 2023-01-17 19:33 采纳率: 70.6%
浏览 31

请问我这样写要怎么改才对,感觉还差哪,就是找不出来了

任务描述:
读入一个以1开头的二进制序列,请将其转换成十进制数输出。(用循环解决,不能使用数组和函数)
输入格式:
若干行,每行代表一组数据,是一串二进制数的1-0序列,最多不超过30位。所有数据只由1、0和回车组成,不包含任何其它空白字符。
输出格式:
依次输出每组数据转换成的十进制数,每个输出结果单独占一行。
输入样例:
1001
1000000000000000000000000000000
11110011
11110111
11111111
101
1
输出样列:
9
1073741824
243
247
255
5
1

#include<stdio.h>
int main(){
    int n,sum=0,i,j,b=0,c=0;
    int a[1000];
    while(~scanf("%d",&n)){
        for(i=0;n!=0;i++){
            sum=n%10;
            a[i]=sum;
            n/=10;
            c++;
        }
        for(j=0;j<c;j++){
           b=b+a[j]*pow(2,j);
        }
        printf("%d\n",b);
    }
    return 0;
}

  • 写回答

3条回答 默认 最新

  • ShowMeAI 2023-01-17 19:48
    关注

    要求不能用数组,一个参考的代码示例如下

    #include<stdio.h>
    int main(){
        char n;
        int sum=0,i=0;
        while(scanf("%c",&n) != EOF){
            if(n == '\n'){
                printf("%d\n", sum);
                sum = 0;
                i = 0;
            }else{
                sum += (n - '0') * (1 << i);
                i++;
            }
        }
        return 0;
    }
    
    评论

报告相同问题?

问题事件

  • 修改了问题 1月17日
  • 创建了问题 1月17日

悬赏问题

  • ¥15 而使用UE5引擎的 工具选项里 打开c++ visual studio 就会有部分显示加载失败 如图 加载失败的这张图 请问是什么原因
  • ¥15 mysql 对多个字段模糊查询,返回第一个匹配的字段
  • ¥15 the testing results of the whole dataset is empty
  • ¥15 can问题,往哥解决
  • ¥15 FFmpeg 成功推流到 Nginx RTMP 服务器但无法用 ffplay 或 VLC 播放
  • ¥15 请修改以下C语言代码使其能正确输出最短路径
  • ¥20 抖音商城拉码器安卓报错求解决办法或者有新的拉码脚本也可以介绍一下
  • ¥15 MPLAB IDE V2.35 报错make[2]: *** [build/default/production/_ext/1472/MSSP_I2C.p1] Error 1
  • ¥15 新唐M451 DTMF检测和发送代码修改
  • ¥15 在国外文献网站里点击view pdf 加载异常缓慢甚至加载不出来。