题目描述
输入一个字符串,然后对每个字符进行奇校验,最后输出校验后的二进制数(如'3’,输出:10110011)。
输入描述:
输入包括一个字符串,字符串长度不超过100。
输出描述:
可能有多组测试数据,对于每组数据, 对于字符串中的每一个字符,输出按题目进行奇偶校验后的数,每个字符校验的结果占一行。
示例1
输入
3 3a
输出
10110011 10110011 01100001
题目分析:将每一个字符转化成整数,并把它化成二进制数存到int a[0]到a[6]中,并把里面的1个个数计数,如果为奇数,a[7]=0,否则a[7]=1;
代码如下:
#include<stdio.h>
#include<malloc.h>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
int i,j,len,s;
char a[102],b[9];
while(scanf("%s",a)!=EOF){
len=strlen(a);
for(i=0;i<len;i++){
s=0;
for(j=7;j>0;j--){
if(a[i]%2==1){
s++;
b[j]='1';
}else
b[j]='0';
a[i]/=2;
}
if(s%2==1)
b[0]='0';
else
b[0]='1';
b[8]='\0';
printf("%s\n",b);
}
}
}