C语言,输入一个字符,输出这个字符的二进制中包含多少个1
答案:3 悬赏:40 手机版
解决时间 2021-03-22 10:19
- 提问者网友:椧運幽默
- 2021-03-21 09:57
C语言,输入一个字符,输出这个字符的二进制中包含多少个1
最佳答案
- 五星知识达人网友:纵马山川剑自提
- 2021-03-21 10:53
#include <stdio.h>
int main()
{
char str[100];
int i,n=0;
scanf("%s",str);
for(i=0;str[i]!='\0';i++)
{
if(str[i]=='1' || str[i]=='0') //判断第i个字符是否是'1'或'0',如果是执行下面语句
{
n<<=1; //把已经得到的n值左移1位,等同于乘以2
n+=str[i]-'0'; //字符'1'减去'0'就等于1,字符'0'减去'0'当然是0,所以这句的意思是把第i个字符所对应的数加到n上去
}
else
{
printf("不是二进制数\n");
return 1;
}
}
printf("%d\n",n);
}
int main()
{
char str[100];
int i,n=0;
scanf("%s",str);
for(i=0;str[i]!='\0';i++)
{
if(str[i]=='1' || str[i]=='0') //判断第i个字符是否是'1'或'0',如果是执行下面语句
{
n<<=1; //把已经得到的n值左移1位,等同于乘以2
n+=str[i]-'0'; //字符'1'减去'0'就等于1,字符'0'减去'0'当然是0,所以这句的意思是把第i个字符所对应的数加到n上去
}
else
{
printf("不是二进制数\n");
return 1;
}
}
printf("%d\n",n);
}
全部回答
- 1楼网友:行路难
- 2021-03-21 12:45
#include <stdio.h>
int main()
{
int c;
int cnt=0;
c=getchar();
while(c)
{
if(c&1) cnt++;
c>>=1;
}
printf("%d\n",cnt);
return 0;
}
- 2楼网友:舍身薄凉客
- 2021-03-21 11:58
#include
int main()
{
char s[2], ch;
scanf("%s", s);
ch = s[0];
int count = 0;
while(ch>0)
{
if(ch&1)
count++;
ch>>=1;
}
printf("%d\n", count);
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯