|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#include<math.h>
int main(void)
{
char a[8]; //储存整数部分
char b[8]; //储存小数部分
char ch;
int i=0,j=0,counti=0,flag=0;
double countj=0;
int sumLeft=0;
double sumRight=0;
scanf("%c",&ch);
while(ch!='#')
{
if(ch!='.'&&countj==0)
{
a[i]=ch;
i++;
counti++;
scanf("%c",&ch);
}
else
{
scanf("%c",ch);
if(ch=='#')
{
ch=='#';
}
else
{
b[j]=ch;
j++;
countj++;
}
}
}
for(i=counti-1;i>=0;i--) //二进制转换十进制
{
sumLeft+=(a[i]-'0')*((int)pow(2,counti-1-i));
}
for(j=0;j<countj;j++) //二进制转换十进制
{
sumRight+=(b[j]-'0')*((double)pow(2,-(j+1)));
}
printf("%.6f\n",sumLeft+sumRight);
printf("%.6f\n",countj);
if(countj==0)
{
printf("%d",sumLeft);
}
else
{
printf("%.6f",sumLeft+sumRight);
}
return 0;
} |
|