九度OJ 1197:奇偶校验 (基础题)
- 题目描述:
- 
输入一个字符串,然后对每个字符进行奇校验,最后输出校验后的二进制数(如'3’,输出:10110011)。 
- 输入:
- 
输入包括一个字符串,字符串长度不超过100。 
- 输出:
- 
可能有多组测试数据,对于每组数据, 
 对于字符串中的每一个字符,输出按题目进行奇偶校验后的数,每个字符校验的结果占一行。
- 样例输入:
- 
3 3a 
- 样例输出:
- 
10110011 10110011 01100001 
思路:
奇校验是啥如果不知道就自己上网查喽,或者参考我的代码,比较简单。
代码:
#include <stdio.h>
#include <string.h>
 
#define N 100
 
int main(void)
{
    int i, j;
    char s[N+1];
    int num[8];
 
    while (scanf("%s", s) != EOF)
    {
        for(i=0; s[i]; i++)
        {
            memset(num, 0, sizeof(num));
            for (j=0; s[i]; j++)
            {
                num[j] = s[i]%2;
                s[i] = s[i]/2;
            }
            for (j=0; j<7; j++)
                num[7] ^= num[j];
            num[7] ^= 1;
            for(j=7; j>=0; j--)
            {
                if(j == 0)
                    printf("%d\n",num[j]);
                else
                    printf("%d",num[j]);
            }
        }
    }
 
    return 0;
}
/**************************************************************
    Problem: 1197
    User: liangrx06
    Language: C
    Result: Accepted
    Time:90 ms
    Memory:912 kb
****************************************************************/
    编程算法爱好者。
 
                    
                 
                
            
         
 浙公网安备 33010602011771号
浙公网安备 33010602011771号