【C語言】調整陣列使奇數全部都位於偶數前面。
這道題目呢是這樣的:
輸入一個整數陣列,實現一個函式,來調整該陣列中數字的順序使得陣列中所有的奇數位於陣列的前半部分,所有偶數位於陣列的後半部分。
首先定義一個函式,函式的功能就是將陣列的奇數全部放在前面,偶數全部放在後面。那麼要將奇數全部放在陣列前面,偶數全部放在陣列的後面,就肯定需要兩個指標,一個從左邊開始找偶數,一個從右邊開始找奇數,找到了就交換,直到所有的元素都被交換完畢。那麼我們怎麼實現這個功能呢?
定義一個 left 指標變數,從左邊開始走,一個一個判斷,是奇數就繼續向右,那麼直到找到偶數跳出while迴圈。
while (((left < right) && (*left) % 2 != 0))
{
left++;
}
同理,我們也可以定義一個 right 指標變數,來從右邊開始找奇數,找到就跳出 while 迴圈。
while (((left < right) && (*right) % 2 == 0))
{
right--;
}
然後我們將找到的一組奇數偶數交換:
if (left < right)
{
int tmp=*left;
*left = *right;
*right = tmp;
}
然後交換一組之後,還有其他組,這又是一個 while 迴圈。所以整體程式碼如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
void Movenum(int a[], int sz)
{
int *left = a;
int *right = a + sz - 1;
while (left < right)
{
while (((left < right) && (*left) % 2 != 0))
{
left++;
}
while (((left < right) && (*right) % 2 == 0))
{
right--;
}
if (left < right)
{
int tmp=*left;
*left = *right;
*right = tmp;
}
}
}
int main()
{
int a[] = { 1, 2, 3, 4, 5, 6, 7, 8 };
int i = 0;
int sz = (sizeof(a) / sizeof(a[0]));
Movenum(a, sz);
for (i = 0; i < sz; i++)
{
printf("%d\n", a[i]);
}
system("pause");
return 0;
}
相關文章
- 【劍指Offer】調整陣列順序使奇數位於偶數前面陣列
- JZ-013-調整陣列順序使奇數位於偶數前面陣列
- 劍指 Offer 21. 調整陣列順序使奇數位於偶數前面陣列
- 使奇數位於偶數前面
- [每日一題] 第十一題:調整陣列順序使奇數位於偶數前面每日一題陣列
- LeetCode題解(Offer21):調整陣列順序使奇數位於偶數前面(Python)LeetCode陣列Python
- 面試題21:調整陣列順序奇數位於偶數前面面試題陣列
- 面試演算法題(4)--將一個整數陣列中的所有奇數放到偶數前面面試演算法陣列
- c語言 將一個陣列中的奇數和偶數分開放在一起C語言陣列
- 第三章:查詢與排序(下)------------- 3.8題解_調整陣列順序-奇數在左偶數在右排序陣列
- C語言陣列C語言陣列
- 1到100迴圈,並把奇數放到陣列中,把偶數放到map中陣列
- 統計位數為偶數的數字(C++)C++
- c語言字元陣列C語言字元陣列
- c語言的陣列C語言陣列
- 求陣列內所有偶數的和陣列
- 關於大數(C語言)C語言
- 3229. 使陣列等於目標陣列所需的最少操作次數陣列
- C語言萌新上手:數列分段C語言
- 【LeetCode-陣列】陣列式整數加法LeetCode陣列
- c語言關於陣列的簡單運算C語言陣列
- R語言中如何抽取向量的偶數項或者奇數項R語言
- 力扣896. 單調數列-C語言實現-簡單題力扣C語言
- C語言 指標與陣列C語言指標陣列
- C語言基礎-1、陣列C語言陣列
- 位運算實現整數與位元組陣列轉換陣列
- C語言程式設計-長整數加法運算C語言程式設計
- C語言實現將一個陣列中的奇偶數分別存放C語言陣列
- 計算位數最高達300位的兩個非負整數的乘積,C語言程式設計實現C語言程式設計
- 【LeetCode】整數轉羅馬數字 C語言 | 此刻,已成藝術(bushi)LeetCodeC語言
- c語言-運算子,陣列,指標C語言陣列指標
- C語言陣列求學生成績C語言陣列
- C語言 不大於2019的最大反數、迴文數C語言
- 如何從整數陣列中找到最大和最小數陣列
- C 語言整數與字串的相互轉換介紹字串
- 輸入一個整數陣列,輸出奇偶數相間排列的陣列陣列
- Swift-Tips之整數轉陣列Swift陣列
- 基於陣列的學生管理系統【C語言版】陣列C語言