华为机试再回忆--第一题

之前写的第一题有误,上个厕所过来赶紧给删了,怕误导大家。题目如下:

题目:输出整数序列中重复的数字

描述:编写一个程序,用户输入任意长度(小于等于10)的整数序列,整数值都大于0,程序输出序列中所有重复的数组并且数组

的顺序和输入保持一致

输入:数字序列,一行数字,长度小于1000;两个数字之间用逗号隔开,所有数字均为整数且大于0.

输出:重复的数字,两个数字之间以空格分隔,数字的顺序和输入一致

样例输入:3,2,2,3,4,5,6

样例输出:3,2

 

解题步骤:

1.申请一个InputArray和HelpArray,大小均为1000,初始化为0

2.将输入字符串存入InputArray并计算实际大小

3.双重循环遍历输入数组,如果有相同的元素则再判断HelpArray数组里面是否存在这个元素

4.若HelpArray没有则存入,否则继续遍历

5.最后顺序HelpArray中的非零元素,即可

 

  1 #include <iostream>
  2 #include <string>
  3 using namespace std;
  4 
  5 #define MaxSize 1000
  6 
  7 int main()
  8 {
  9     int *InputArray=new int[MaxSize];
 10     int *HelpArray=new int[MaxSize];
 11     for(int i=0;i<MaxSize;i++)
 12     {
 13         InputArray[i]=0;
 14         HelpArray[i]=0;
 15     }
 16     
 17     
 18     string s;
 19     cin>>s;
 20 
 21 
 22     int count=0;
 23     int sum=0;
 24     i=0;
 25     int temp;
 26     while(true)
 27     {
 28         if(s[i+1]!=','&&(i+1)!=s.length())
 29         {
 30             sum=sum*10+(s[i]-'0')*10;
 31         }
 32         else
 33         {
 34             sum=sum+(s[i]-'0');
 35             temp=sum;
 36             InputArray[count++]=sum;
 37             if(i==s.length()-1)
 38             {
 39                 break;
 40             }
 41             
 42             sum=0;
 43             i=i+2;
 44             continue;
 45         }
 46         i++;
 47         
 48     }
 49 
 50 
 51   int RealLen=count;
 52 
 53   for(i=0;i<count;i++)
 54   {
 55       if(InputArray[i]<=0)
 56       {
 57         return 0;
 58       }
 59   }
 60       
 61 
 62    int countnew=0;
 63     for(i=0;i<RealLen;i++)
 64     {
 65         for(int j=0;j<RealLen;j++)
 66         {
 67             if(i!=j)
 68             {
 69                 bool flag=true;
 70                 if(InputArray[i]==InputArray[j])
 71                 {
 72                     for(int k=0;k<MaxSize;k++)
 73                     {
 74                         if(InputArray[i]==HelpArray[k])
 75                         {
 76                             flag=false;
 77                         }
 78                     }
 79                     
 80                     
 81                     if(flag)
 82                     {
 83                         HelpArray[countnew++]=InputArray[i];
 84                     }
 85                 }
 86             }
 87         }
 88     }
 89     
 90     for(i=0;i<MaxSize;i++)
 91     {
 92         if(HelpArray[i]==0)
 93         {
 94             break;
 95         }
 96         else
 97         {
 98             cout<<HelpArray[i]<<" ";
 99         }
100     }
101     
102     cout<<endl;
103     delete[] InputArray;
104     InputArray=NULL;
105     
106     delete[] HelpArray;
107     HelpArray=NULL;
108     return 0;
109 }

运行截图:

posted @ 2015-08-24 15:40  vpoet  阅读(660)  评论(0编辑  收藏  举报