网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
- 所有的奇数部分的前后顺序不变
- 所有的偶数部分的前后顺序不变
int main()
{
int a[] = { 1,2,8,9,4,10,3,5,6,0,7 };
int left = 0;
int sz = sizeof(a) / sizeof(a[0]);
int right = sz-1;
int tmp = 0;//临时中间变量
int num = sz;//判断次数
while (num)
{
if (a[left] % 2 == 0)//此时a[left]是偶数,则进行移位
{
//ou = i;//下一次判断的起始位置
tmp = a[left];
for (int j = left; j <= right - 1; j++)
{
a[j] = a[j + 1];
}
a[right] = tmp; //偶数放在数组末尾
}
else
{
left++;//a[left]不是偶数,则判断下一个a[left+1]
}
num--;
}
for (int i = 0; i < sz; i++)
{
printf("%d ", a[i]);
}
return 0;
}
结果见下图:
10
2、改变元素的顺序
- 首先将奇数都调整到数组的前面
- 然后将偶数都调整到数组的后面
- 所有的奇数部分的前后顺序有改变
- 所有的偶数部分的前后顺序有改变
void change(int a[], int sz)
{
int left = 0;
int right = sz - 1;
while (left<right)
{
while ((left<right) && (a[left] % 2 == 1))
{
left++;
}
while ((left < right) && (a[right] % 2 == 0))
{
right--;
}
if (left < right)
{
int tmp = a[left];
a[left] = a[right];
a[right] = tmp;
}
}
}
void print(int a[], int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%d ", a[i]);
}
}
int main()
{
int a[] = { 1,2,8,9,4,10,3,5,6,0,7 };
int sz = sizeof(a) / sizeof(a[0]);
change(a, sz);
print(a, sz);
return 0;
}
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
topics/618668825)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!