程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 九度OJ 題目1117:整數奇偶排序

九度OJ 題目1117:整數奇偶排序

編輯:C++入門知識

********************************    *    日期:2013-2-5   *    作者:SJF0115    *    題號: 九度OJ 題目1117:整數奇偶排序   *    來源:http://ac.jobdu.com/problem.php?pid=1117   *    結果:AC    *    來源:2008年北京大學圖形實驗室計算機研究生機試真題   *    總結:注意只有奇數沒有偶數的情況,只有偶數沒有奇數的情況。可能沒有偶數,那麼輸出奇數後不要有空格!  **********************************/    #include<stdio.h>    #include<stdlib.h>    #include<string.h>    //偶數排序    int cmp(const void *a,const void *b){       return *(int *)a - *(int *)b;   }   //奇數排序    int cmp2(const void *a,const void *b){       return *(int *)b - *(int *)a;   }   int main()   {       int n,i,evenCount,oddCount;       int number[10];       int even[10];       int odd[10];       //freopen("C:\\Users\\SJF\\Desktop\\acm.txt","r",stdin);         while(scanf("%d",&number[0])!=EOF)       {           evenCount = 0;           oddCount = 0;           if(number[0] % 2){               odd[oddCount++] = number[0];           }           else{               even[evenCount++] = number[0];           }           for(i = 1;i < 10;i++){               scanf("%d",&number[i]);               //奇數                if(number[i] % 2){                   odd[oddCount++] = number[i];               }               //偶數                else{                   even[evenCount++] = number[i];               }           }           //排序            qsort(even,evenCount,sizeof(even[0]),cmp);           qsort(odd,oddCount,sizeof(odd[0]),cmp2);           //1.先輸出其中的奇數,並按從大到小排列;2.然後輸出其中的偶數,並按從小到大排列。            //輸出奇數            int flag = 0;           for(i = 0;i < oddCount;i++){               if(flag){                   printf(" ");               }               printf("%d",odd[i]);               flag = 1;           }           //沒有偶數只有奇數            if(evenCount == 0){               printf("\n");           }           //有偶數無奇數            else if(oddCount != 0){               printf(" ");           }           //輸出偶數            for(i = 0;i < evenCount;i++){               if(i == evenCount-1){                   printf("%d\n",even[i]);               }               else{                   printf("%d ",even[i]);               }           }       }       return 0;   }     /*********************************   *    日期:2013-2-5  *    作者:SJF0115   *    題號: 九度OJ 題目1117:整數奇偶排序  *    來源:http://ac.jobdu.com/problem.php?pid=1117  *    結果:AC   *    來源:2008年北京大學圖形實驗室計算機研究生機試真題  *    總結:注意只有奇數沒有偶數的情況,只有偶數沒有奇數的情況。可能沒有偶數,那麼輸出奇數後不要有空格! **********************************/  #include<stdio.h> #include<stdlib.h> #include<string.h> //偶數排序 int cmp(const void *a,const void *b){ return *(int *)a - *(int *)b; } //奇數排序 int cmp2(const void *a,const void *b){ return *(int *)b - *(int *)a; } int main() {     int n,i,evenCount,oddCount; int number[10]; int even[10]; int odd[10]; //freopen("C:\\Users\\SJF\\Desktop\\acm.txt","r",stdin);      while(scanf("%d",&number[0])!=EOF)     { evenCount = 0; oddCount = 0; if(number[0] % 2){ odd[oddCount++] = number[0]; } else{ even[evenCount++] = number[0]; }         for(i = 1;i < 10;i++){ scanf("%d",&number[i]); //奇數 if(number[i] % 2){ odd[oddCount++] = number[i]; } //偶數 else{ even[evenCount++] = number[i]; } } //排序 qsort(even,evenCount,sizeof(even[0]),cmp); qsort(odd,oddCount,sizeof(odd[0]),cmp2); //1.先輸出其中的奇數,並按從大到小排列;2.然後輸出其中的偶數,並按從小到大排列。 //輸出奇數 int flag = 0; for(i = 0;i < oddCount;i++){ if(flag){ printf(" "); } printf("%d",odd[i]); flag = 1; } //沒有偶數只有奇數 if(evenCount == 0){ printf("\n"); } //有偶數無奇數 else if(oddCount != 0){ printf(" "); } //輸出偶數 for(i = 0;i < evenCount;i++){ if(i == evenCount-1){ printf("%d\n",even[i]); } else{ printf("%d ",even[i]); } }     }     return 0; }    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved