#include<stdio.h>int count_one_bits(int a) //方法1
{
intcount = 0;
int i = 0;
for (i = 0; i < 32; i++)
{
if ((a & 1) == 1)
count++;
a = a >> 1;
}
returncount;
}
int count_one_bits( int a) //方法2
{
intcount = 0;
while (a)
{
count++;
a = a&(a - 1);
}
returncount;
}
int count_one_bits(unsigned int a) //方法3
{
intcount = 0;
int i = 0;
for (i = 0; i < a; a = a >> 1)
{
if (a % 2 == 1)
count++;
}
returncount;
}
int count_one_bits(unsigned int a)//方法4
{
intcount = 0;
while (a != 0)
{
if (a % 2 == 1)
count++;
a = a / 2;
}
}
int main()
{
int a = -1;
int ret=count_one_bits(a);
printf("%d \n", ret);
system("pause");
return0;
}
**2、把"welcome to shankeda!"與"####################"結合起來,
讓字符串慢慢以
"w##################!"
"we################a!"
...
"welcome to shankeda!"
的形式輸出**。
#include<stdio.h>#include<string.h>#include<windows.h>int main()
{ //逐行打印char arr1[] = "welcome to shankeda!";
char arr2[] = "####################";
int left = 0;
//int right = sizeof(arr1) / sizeof(arr1[0]) - 2;int right = strlen(arr1)-1;
while (left < right)
{
Sleep(1000);
arr2[left] = arr1[left];
arr2[right] = arr1[right];
printf("%s\n", arr2);
left++;
right--;
}
system("pause");
return0;
}
**3、 交換兩個大小相等的數組中的所有元素。**
#include<stdio.h>int main()
{
int arr1[] = { 0, 1, 3, 4, 5 };
int arr2[] = { 2, 3, 4, 6, 7 };
int tmp = 0;
int sz = sizeof(arr1) / sizeof(arr1[0]);
int i = 0;
for (i = 0; i < sz; i++)
{
tmp = arr1[i];
arr1[i] = arr2[i];
arr2[i] = tmp;
}
for (i = 0; i < sz; i++)
{
printf("%d ", arr1[i]);
}
printf("\n");
for (i = 0; i < sz; i++)
{
printf("%d ", arr2[i]);
}
system("pause");
return0;
}