#include<stdio.h>
int main() {
int a = 0;
printf("Enter a eight-digit binary number: ");
scanf("%d", &a);
int result = 0, position = 1;
while (a != 0) {
result += (a % 10) * position;
position *= 2;
a /= 10;
}
printf("Decimal number: %d\n", result);
return 0;
}
На этот раз идеальное ;)
Есть, разве что, пара совсем косметических рекомендаций:
Полезно завести привычку не оставлять неинициализированных переменных, а сразу же задавать им значения. По мере роста скилла сами будете знать, когда переменные нужно специально оставлять неопределёнными. А привычка всегда их инициализировать сэкономит впоследствии кучу времени и спасёт много волос на голове.
Стараться декларировать переменную максимально близко к месту её первого использования - не всегда программы будет получаться уложить в 5 строк.
Переменная num у вас используется ровно один раз, значит, можно обойтись без неё.