1 条题解

  • 0
    @ 2025-4-12 21:52:29

    C :

    #include<stdio.h>
    #include<string.h>
    #include<math.h>
    void change(char * a,int b)
    {
    	int i=0;
    	while(b!=0)
    	{
    		a[i]=(int)b%2+48;
    		b=(int)b/2;
    		i++;
    	}
    	a[i]='\0';
    }
    int main()
    {
    	char c[110];
    	int i,count,b,j;
    	char a[50]={0};
    	while(scanf("%s",c)!=EOF)
    	{
    		count=0;
    		j=0;
    		while(c[j])
    		{
    			count=0;
    			b=(int)c[j];
    			change(a,b);
    			for(i=0;a[i];i++)
    			{
    				if(a[i]=='1')
    					count++;
    			}
    			if(i<7)
    			{	a[i]='0';
    			   i++;
    			}
    			if((int)count%2==1)
    				a[i]='0';
    			else
    				a[i]='1';
    			while(i>=0)
    			{
    				printf("%c",a[i]);
    				i--;
    			}
    			printf("\n");
    			i=0;
    			j++;
    		}
    
    	}
    	
    return 0;
    }
    

    C++ :

     #include <stdio.h>
     
     int main()
     {
         char a[100];
         int i,j,k,b[8];
         int asc,sum;
         
         while(scanf("%s",&a)!=EOF)
         {
             for(i=0;a[i]!='\0';i++)
             {
                 asc=(int) a[i];
                 sum=0;            //sum清零
                 for(k=7;k>0;k--)
                 {
                     b[k]=asc%2;
                     if(b[k]==1)
                         sum++;   //统计a[i](二进制)"1" 的个数
                     asc/=2;
                 }
                 if(sum%2==0)
                     b[0]=1;      //校验位为b[0]
                 else b[0]=0;
                 for(j=0;j<8;j++)
                     printf("%d",b[j]);
                 printf("\n");
             }
         }
         return 0;
     }
    
    • 1

    信息

    ID
    2086
    时间
    1000ms
    内存
    32MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者