#include <stdio.h>
#include <math.h>
#include <string.h>
int main()
{
int i,T,a[33],sum;
char ch[33],c;
scanf("%d",&T);
c=getchar();
for(int t=0;t<T;t++)
{
gets(ch);
sum=0;
for(i=0;i<strlen(ch);i++)
{
a[strlen(ch)-1-i]=ch[i]-'0';
}
for(i=0;i<strlen(ch);i++)
{
sum=sum+a[i]*pow(2,i);
}
printf("%d\n",sum);
}
return 0;
}
这是一道二进制转换为十进制的题目,一共有T组测试数据,由于题目要求需要将31位以下的二进制串都能转换成十进制,但由于longlong范围不够只能用数组存储,我想问的是,我定义的c是用来清缓存区scanf的回车的,但是为什么最后编译出现warning说我的变量c申明了却是unused?用的codeblock,C语言
用变量=getchar清缓存为啥说定义的变量没有用到
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
技术专家团-小桥流水 2021-11-04 00:13关注是不是没有保存,保存一下重新编译试试。
因为c只是用来接收回车符,所以c这个变量可以不要,c = getchar();直接用getchar()就可以了,然后把声明的c删掉,这样就可以消除这个警告了。(一些警告忽略就行,对代码没什么影响)本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 1无用