#include <stdio.h>
#include <windows.h>
int main()
{
int n = 0;
int i = 0;
int s = 0; //商
int y = 0; //余数
int arr[20] = {0};
printf("输入一个正整数:");
scanf_s("%d", &s);
//循环做除法用数组记录余数
while (s != 0 )
{
y = s % 2;
s = s / 2;
arr[i] = y;
i++;
}
//逆序输出余数数组
printf("该正整数的二进制数为:");
for (i = i - 1; i >= 0; i--)
{
printf("%d", arr[i]);
//记录余数数组中1的个数
if (arr[i] == 1)
n++;
}
printf("\n");
printf("该正整数的二进制数中1的个数为:%d\n", n);
system("pause");
return 0;
}