【C語言簡單排序】—— 整數奇偶排序


7-1 整數奇偶排序 

  給定10個整數的序列,要求對其重新排序。

  排序要求:

  1.奇數在前,偶數在后;

  2.奇數按從大到小排序;

  3.偶數按從小到大排序。

輸入格式:

  輸入一行,包含10個整數,彼此以一個空格分開,每個整數的范圍是大於等於0,小於等於30000。

輸出格式:

  請在這里描述輸出格式。例如:對每一組輸入,在一行中輸出A+B的值。

輸入樣例:

  按照要求排序后輸出一行,包含排序后的10個整數,數與數之間以一個空格分開。

 4 7 3 13 11 12 0 47 34 98

輸出樣例:

  在這里給出相應的輸出。例如:

 

 47 13 11 7 3 0 4 12 34 98 

 

思路:

  這里分析題目,發現有三種情況下需要進行排序:
  1.a[j]為奇數,a[j+1]為偶數
  2.a[j]為奇數,a[j+1]為奇數且a[j] < a[j+1]
  3.a[j]為偶數,a[j+1]為偶數且a[j] > a[j+1]

代碼:

#include<stdio.h>
int main() { int n = 10,i,j,tmp; int a[10]; for(i = 0; i < n; i++) { scanf("%d",&a[i]); } for(i = 0; i < n-1; i++) { for(j = 0; j < n-1; j++) { if(a[j] % 2 == 0 && a[j+1] % 2 != 0 || a[j] % 2 != 0 && a[j+1] % 2 != 0 && a[j] < a[j+1] || a[j] % 2 == 0 && a[j+1] % 2 ==0 && a[j] > a[j+1]) { tmp = a[j]; a[j] = a[j+1]; a[j+1] = tmp; } } } for(i = 0; i < n; i++) { printf("%d ",a[i]); } return 0; }

 














免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM