C программа для преобразования входного двоичного числа в десятичное число
Код отлично работает для входа 10001000, 101100, для которого выходы составляют 136 и 44 соответственно, но не работает для
Мой код:
#include <stdio.h>
#include<math.h>
int main() {
int t,i,s,r;
int b;
scanf("%d",&t);
while(t--)
{
scanf("%d",&b);
i=0;
s=0;
while(b!=0)
{
r=b%10;
s=s+r*pow(2,i);
b=b/10;
i++;
}
printf("%d\n",s);
}
return 0;
}
1-е тестовые случаи удовлетворяются следующим образом:
Для ввода:
2 * * +1010
10001000
101100
Ваш вывод:
136
44
Следующий тестовый пример не выполняется, и ошибка выглядит следующим образом:
Ошибка в выводе:
Неправильный ответ. !!! Неправильный ответ
Возможно, ваш код не работает правильно для нескольких тестовых случаев.
Первый тестовый случай, когда ваш код не удался:
Введите:
11111111111
Правильный вывод:
2047
А вывод вашего кода:
-3809
Может ли кто-нибудь предложить мне необходимые изменения?