您的位置:首页 > 编程语言 > C语言/C++

2013年华为c语言上机试题2

2015-11-03 02:26 465 查看
C++ Code
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

//2013年华为c语言上机试题2

//计算一个整数二进制表达式中0的个数

#include<stdio.h>

//计算整数中0的个数,下面的方法用移位的操作,更加简单一些

/*void numzero(int k, int*zeronum)

{

int i;

int remin;

int inter;

(*zeronum) = 0;

i = k;

inter = i / 2;

remin = i % 2;

while(inter)

{

if(remin == 0)

{

(*zeronum)++;

}

remin = inter % 2;

inter = inter / 2;

}

}*/

void numzero(int k, int*zeronum)

{

(*zeronum) = 0;

while(k != 0)

{

if((k & 1) == 0)

{

(*zeronum)++;

}

k >>= 1;

}

}

void main()

{

int i;

int temp;

int num = 0;

printf("请输入一个整数\n");

temp = scanf("%d", &i);

while(temp == 1)

{

numzero(i, &num);

printf("%d的二进制数中0的个数为%d\n", i, num);

printf("请输入下一个整数,输入其它字符结束\n");

temp = scanf("%d", &i);

}

}



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: