求大神解答c语言答案:定义一个整型一维数组,随机生成数组元素或者输入数组元素用指针实现数组元素奇数

求大神解答c语言答案:定义一个整型一维数组,随机生成数组元素或者输入数组元素用指针实现数组元素奇数排列在左,偶数在右的排列,并不允许增加新的数组。谢谢了

用两个指针记录头和尾,然后判断奇数,偶数。

 void divideOddEven(int *arr, int n)
{
 int *pHead = arr;
 int *pTail = (arr + n - 1);
 while (pHead<pTail)
 {
  if (*pHead % 2 == 1)
   pHead++;
  else if (*pHead % 2 != 1 && *pTail % 2 == 0)
   pTail--;
  else
  {
   swap(*pHead, *pTail);
   pHead++;
  }
 }
}

结果如下:

追问

能给一个完整的c语言程序吗

能给一个完整的c语言程序吗

追答

这个就能够使用了,剩下输入输出,就看你到底选择什么方式了。

int main()
{
 int n;
 cin >> n;
 int *arr = new int[n];
 for (int i = 0; i < n; i++)
  cin>>arr[i];
 cout << endl;
 divideOddEven(arr, n);
 for (int i = 0; i < n; i++)
  cout << arr[i] << " ";
 cout << endl;
return 0;
}

追问

c++???

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-23
正好我们老师今天才给我讲了数组追答

我来试试

第2个回答  2015-04-21
吾得名子追问

纳尼

第3个回答  2015-04-21
硪滴名字追问

纳尼