-
题目描述:
-
输入一个字符串,然后对每个字符进行奇校验,最后输出校验后的二进制数(如'3’,输出:10110011)。
-
输入:
-
输入包括一个字符串,字符串长度不超过100。
-
输出:
-
可能有多组测试数据,对于每组数据,
对于字符串中的每一个字符,输出按题目进行奇偶校验后的数,每个字符校验的结果占一行。
-
样例输入:
-
3 3a
题目分析:将每一个字符转化成整数,并把它化成二进制数存到int a[0]到a[6]中,并把里面的1个个数计数,如果为奇数,a[7]=0,否则a[7]=1;
注意 :1.初始化的位置开始搞错了 wa了一次
2.字符‘1’的ASCII码为31(十六进制)
#include<iostream> #include<cstdio> #include<string.h> using namespace std; char s[110]; int main() { while(gets(s)!=NULL) //while(scanf("%s",s)!=EOF) { int len=strlen(s); int s1[10]; int ans=0; for(int i=0;i<len;i++) { memset(s1,0,sizeof(s1));/***初始化的位置放错了*/ int k=0; ans=0; int temp=(int)s[i]; //printf("temp=%d\n",temp); while(temp!=0) { s1[k++]=(temp&1); if(temp&1==1) ans++; temp=temp/2; } if(ans%2==1) s1[7]=0; else s1[7]=1; for(int j=7;j>=0;j--) printf("%d",s1[j]); printf("\n"); } } return 0; }