C++这个程序该怎么改

img

char str[20];
int a;
int b[20];
int sum=0;
int num=0;
int num1=0;
scanf("%s",&str); 
int len=strlen(str);

for(int i=0;i<len-1;i++)
{
    if(str[i]>='0'&&str[i]<='9')
    {
        a=str[i]-'0';
        b[i]=a;
        num++;
        num1++;
    }
}
for(int j=0;j<num;j++)
{
    sum+=b[j]*pow(2,num1-1);
    num1--;
}
printf("(%d)8",sum);

}


#include<stdio.h>
#include<string.h>
#include <math.h>
int main()
{
    char str[20];
    int res = 0;
    int sum = 0;
    int num = 0;
    scanf("%s", &str);
    int len = strlen(str);
    for (int j = 1; j < len - 2; j++)
    {
        if (str[j] == '1')
        {
            sum += 1 * pow(2, len - 3 - j);
        }
    }
    while (sum!=0)
    {
        res += sum % 8 * pow(10, num);
        sum = sum / 8;
        num++;
    }
    printf("(%d)8", res);
    return 0;
}