为什么不执行下一条 if语句

sen_lin8350 2014-04-19 08:40:18
程序使前边为奇数后面为偶数,问什么一直卡到红色的那条if语句而不向下执行

#include <iostream>
using namespace std;
void ReorderOddEven(int *pData, unsigned int length)
{
if(pData == NULL || length == 0)
return;
int *pBegin = pData;
int *pEnd = pData + length-1;

while(pEnd>pBegin){
if(*pBegin&0x01 == 1) pBegin++;
if(*pEnd&0x01 == 0) pEnd--;
if((*pBegin&0x01 == 0) &&(*pEnd&0x01 == 1)){
int temp = *pBegin;
*pBegin=*pEnd;
*pEnd=temp;
pBegin++;
pEnd--;
}
}
}


int main()
{
int pData[]={1,2,3,4,5,6,7,8};
ReorderOddEven(pData, 8);
for(int i=0; i<8; i++)
cout<<pData[i]<<endl;
system("pause");
return 0;
}
...全文
114 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
孤影品茗 2014-04-19
  • 打赏
  • 举报
回复
这种问题,调试一下,或者吃个饭再回来看代码,就能发现了
sen_lin8350 2014-04-19
  • 打赏
  • 举报
回复
问题已解决,不是不执行这条语句if(*pEnd&0x01 == 0),而是因为if(*pEnd&0x01 == 0)需要改为if((*pEnd&0x01) == 0).

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧