تبدیل عدد مبنای ۲ به مبنای ۱۰ بدون استفاده از توابع و با استفاده از دستورات اولیه

ساخت وبلاگ

سلام
کد زیر رو برای تبدیل عدد مبنای ۲ به ۱۰ نوشتم، اما جواب گاهی درست و گاهی غلط هست، بسته به عدد.
آیا می‌شه فقط با استفاده از for, while, if و عملگرهای اولیه، و بدون استفاده از تابع pow یا توابع دیگه و یا مقدارهایی که از طریق retu بازگشت داده می‌شه، تبدیل رو انجام داد؟ چون هنوز چیزی در مورد توابع و مقدار بازگشتی نمی‌دونم.

 int yes=1,i=0,j=0,r=0,step1=0,x,b;
scanf("%d",&x);
while(yes){
step1=x%10;
for(j=i,b=i;j>0;j--)
r=r+(step1*b);
if(i==0&&step1==1)
r=1;
x=x/10;
if(x==0)
yes=0;
i++;
}
printf("%dn",r);
retu 0;

برنامه نویس...
ما را در سایت برنامه نویس دنبال می کنید

برچسب : نویسنده : محمد رضا جوادیان programers بازدید : 134 تاريخ : سه شنبه 1 تير 1395 ساعت: 22:27