高中生程式解題系統:明明愛排列

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

題目連結 http://zerojudge.tw/ShowProblem?problemid=a225

此題修改C語言qsort的比較函數compare,或是C++語言sort的比較函數comp即可。

程式碼:
#include <cstdlib>
#include <cstdio>

using namespace std;

int compare(const void *a, const void *b)
{
      int c = *(int *)a;
      int d = *(int *)b;
      if(c % 10 < d % 10) {return -1;}
      else if (c % 10 > d % 10) {return 1;}
      else return c < d; 
}

int main(void){
 int num = 0;
  
    while(scanf("%d", &num) != EOF)
    {
  int data[num];
  for(int i = 0; i < num; i++)
   scanf("%d", &data[i]);
  qsort(data, num, sizeof(int), compare);
  
  for(int i = 0; i < num; i++)
   printf("%d ", data[i]);
  
  printf("\n");
    }
    return 0;
}