在C/C++里看到一道题目,给出一数组;
求数组中大于左边,小于右边的元素,除了首元素和尾元素,
如{4,1,2,5,8,6,9} 则输出5;数组中可能不止一个符合条件的元素;
昨晚做了下,粗糙的写了下就交了,感觉不够好,就改了下;
- static void SearchMid(ref int[] a)
- {
- int Cou=a.Length-1;
- int Maxflag=a[0];
- for(int i=1;i<Cou;i++)
- {
- for(;a[i]<=Maxflag&&i<Cou;i++){} //在前i元素中找最大元素
- if(i<Cou)
- {
- for(int j=i+1;a[i]<a[j]&&i<Cou;j++) //向后排查
- {
- Maxflag=a[j];
- if(j==Cou)
- {
- Console.WriteLine("{0}", a[i]); //输出元素
- break;
- }
- }
- if(i<Cou) Maxflag=a[i]; //如果for条件不成立且,
- }
- }
- }