您的位置:首页 > 其它

题目1197:奇偶校验

2013-01-16 20:57 351 查看
题目描述:输入一个字符串,然后对每个字符进行奇校验,最后输出校验后的二进制数(如'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;elses1[7]=1;for(int j=7;j>=0;j--)printf("%d",s1[j]);printf("\n");}}return 0;}
[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: