您的位置:首页 > 其它

2013华为校园招聘机试题目题5

2015-11-09 01:27 169 查看
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

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

//2013华为校园招聘机试题目题5

//将一个int类型的数字转化为字符串

//并判断有无重复字符串(长度应大于2)有返回1,无返回2

#include <stdio.h>

#include <stdlib.h>

#define MAX 200

int ItoAandRepeat(unsigned int theNum,char *s)

{

char Str[MAX];

char Repeat[MAX];

int interg,remainder,i=0,j,z=0,k=0,temp;

//数字转换成字符串

remainder=theNum%10;

interg=theNum/10;

while(interg)

{

Str[i]=remainder+48;

i++;

remainder=interg%10;

interg=interg/10;

}

Str[i]=remainder+48;

i++;

Str[i]='\0';

for(z=0,j=i-1;j>=0;j--,z++)

{

s[z]=Str[j];

}

s[z]='\0';

printf("%d转换成字符串为:%s\n",theNum,s);

//判断有无重复字符串

for(i=0;s[i]!='\0';i++)

{

//判断之前是否出现过该字符

for(j=0;j<i;j++)

{

//出现过,从此位置开始向后判断,有多少位重复

if(s[j]==s[i])

{

z=i;

z++;

j++;

temp=1;//第一次重复

while(s[j]==s[z]&&s[z]!='\0')//继续判断

{

z++;

j++;

temp++;

}

if(temp>1)//重复字符数大于1

{

for (k=0;k<temp;k++,i++)

{

Repeat[k]=s[i];//复制重复的字符串便于打印

}

Repeat[k]='\0';

printf("%s有重复字符串,重复字符串为:%s\n",s,Repeat);

return 1;

}

}

}

}

return 2;

}

//测试主函数

void main()

{

int number,temp1,re;

char s[MAX];

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

temp1=scanf("%d",&number);

while(temp1==1)

{

re=ItoAandRepeat(number,s);

printf("re=%d\n",re);

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

temp1=scanf("%d",&number);

}

}



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