标签:clu mem href printf 九度 txt sci ref 进制
输入一个字符串,然后对每个字符进行奇校验,最后输出校验后的二进制数(如‘3’,输出:10110011)。
输入包括一个字符串,字符串长度不超过100。
可能有多组测试数据,对于每组数据,
对于字符串中的每一个字符,输出按题目进行奇偶校验后的数,每个字符校验的结果占一行。
3 3a
10110011 10110011 01100001
判断奇偶,可以用&1,也可以用%2。前者效率高。
1 #include <stdio.h> 2 #include <string.h> 3 4 using namespace std; 5 6 char str[101]; 7 8 9 10 int main() 11 { 12 while(scanf("%s", str)!=EOF) 13 { 14 int len=strlen(str); 15 for(int i=0; i<len; i++) 16 { 17 int tmp=str[i]; //tmp保存的是ascii码 18 char bin[10]; 19 memset(bin, 0, sizeof(bin)); 20 int x=0; 21 22 do{ 23 int t=tmp%2; 24 bin[x++]=t+‘0‘; 25 tmp/=2; 26 }while(tmp); 27 28 29 int cnt=0; 30 31 for(int j=0; j<8; j++) 32 { 33 34 if(bin[j]!=‘1‘ && bin[j]!=‘0‘) 35 { 36 bin[j]=‘0‘; 37 } 38 else if(bin[j]==‘1‘) 39 cnt++; 40 } 41 42 43 if(cnt%2==0) 44 {//偶数 45 bin[7]=‘1‘; 46 } 47 48 for(int j=7; j>=0; j--) 49 printf("%c", bin[j]); 50 51 printf("\n"); 52 } 53 } 54 55 return 0; 56 }
标签:clu mem href printf 九度 txt sci ref 进制
原文地址:http://www.cnblogs.com/shenckicc/p/6753094.html