#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int extract_number(const char *s) {
const char *p = strrchr(s, ' '); // find last space
return atoi(p + 1); // convert number after it
}
int cmp(const void *a, const void *b) {
const char *sa = *(const char **)a;
const char *sb = *(const char **)b;
int na = extract_number(sa);
int nb = extract_number(sb);
return na - nb; // ascending order
}
int main(void) {
const char *arr[] = {
"Python 4", "C 9", "C++ 5", "C# 6",
"Java 1", "PHP 7", "Go 2"
};
size_t n = sizeof(arr) / sizeof(arr[0]);
qsort(arr, n, sizeof(char *), cmp);
for (size_t i = 0; i < n; i++)
printf("%s\n", arr[i]);
return 0;
}
/*
run:
Java 1
Go 2
Python 4
C++ 5
C# 6
PHP 7
C 9
*/