解题思路:思路很清楚:将整数先用2进制表示,再将下标0~(n1-1),(n2+1)~32清零,然后整个数组转换为10进制
注意事项:pow()函数要求结果和参数都是double型
参考代码:
#include<stdio.h>
#include<math.h>
int main()
{
int value,i,j,length,n1,n2;
double m=0,sum=0;
int bit1[32]={0};
scanf("%d %d %d",&value,&n1,&n2);
i=0;
do{
bit1[i++]=value%2;
value/=2;
}while(value>0);
for(i=0;i<n1;i++)bit1[i]=0;
for(i=n2+1;i<=32;i++)bit1[i]=0;
m=0,sum=0;
for(j=0;j<=32;j++,m++)
{
sum+=bit1[j]*pow(2.0,m);
}
printf("%.0lf\n",sum);
return 0;
}
0.0分
0 人评分
模拟计算器 (C语言代码)浏览:891 |
C语言程序设计教程(第三版)课后习题5.7 (C++代码)浏览:855 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:511 |
哥德巴赫曾猜测 (C语言代码)浏览:1015 |
Pascal三角 (C语言代码)浏览:1188 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:583 |
WU-字符串比较 (C++代码)浏览:756 |
wu-淘淘的名单 (C++代码)浏览:1339 |
WU-printf基础练习2 (C++代码)浏览:2007 |
2006年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:472 |