Тема: Не вистачає одиниці в числі)
Програма, яка переводить двійково-десятквоий код в десятковий. Ніби все працює вірно, але при видачі результату десь губиться одиниця, тобто якщо я ввів дв.-десятковим кодом число 4956, то виводить 4955.
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <iostream.h>
int main() {
char numb[30],*temp=numb;
int n=0,m=0,tempnumb=0,tn=0;
gets(numb);
while(*(temp+1)!='\0') //шукаємо останній символ рядка
{
temp++;
}
for(char* i=temp;i>=numb;i--)
{
while(*i!=' ') // проходимо циклом по кожній тетраді
{
if(*i=='1')
tempnumb+=pow(2,m);// тут формуємо десяткове представлення тетради
i--;
m++;
}
tn+=tempnumb*pow(10,n);//тут додаємо розряд тетради
n++;
m=0;
tempnumb=0;
}
cout<<tn;
cin.ignore();
cin.get();
return 0;
}