比较挫的代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i = 1;
int j = 0;
int num = 0;
int arr[32] = { 0 };
int count = 0;
scanf("%d", &num);
while(num)
{
arr[i]= num % 2;
num =num / 2;
i++;
count++;
}
printf("该整数的二进制序列为:\n");
for(i = 31; i >= 0; i--)
{
printf("%d", arr[i]);
}
printf("\n");
if(count % 2 == 0)
{
printf("该整数的偶数二进制序列为:\n");
for(i = count; i >= 2; i = i - 2)
{
printf("%d", arr[i]);
}
printf("\n");
printf("该整数的奇数二进制序列为:\n");
for(i = count - 1; i >= 1; i = i - 2)
{
printf("%d", arr[i]);
}
}
else
{
printf("该整数的偶数二进制序列为:\n");
for(i = count - 1; i >= 2; i = i - 2)
{
printf("%d", arr[i]);
}
printf("\n");
printf("该整数的奇数二进制序列为:\n");
for(i = count; i >= 1; i = i - 2)
{
printf("%d", arr[i]);
}
}
system("pause");
return 0;
}
优化过后的代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i = 0;
int num = 0;
int count = 0;
scanf("%d", &num);
for(i = 31; i >= 1; i -= 2)
{
printf("%d ", (num>>i)&1);
}
printf("\n");
for(i=30;i>=0; i-=2)
{
printf("%d ", (num>>i)&1);
}
printf("\n");
system("pause");
return0;
}