int main() { int n, m; scanf("%d%d", &n, &m); /*char **a = (char **)malloc((m+1) * sizeof(char *)); for (int i = 0;i < m;i++) { a[i] = (char *)malloc((n+1) * sizeof(char)); }*/ int *b = (int *)malloc(m * sizeof(int)); for (int i = 0;i < m;i++) { b[i] = 0; } char a[100][100]; for (int i = 0;i < m;i++) { scanf("%s",a[i]); } for (int i = 0;i < m;i++) { for (int j = 0;j < n;j++) { for (int k = j + 1;k < n;k++) { if (a[i][j]>a[i][k]) b[i]++; } } } for (int i = m-1;i>0;i--) { for (int j = 0;j < i;j++) { if (b[j] > b[j + 1]) { int temp = b[j]; b[j] = b[j + 1]; b[j + 1] = temp; char *t = (char *)malloc(100 * sizeof(char)); strcpy(t, a[j]); strcpy(a[j], a[j + 1]); strcpy(a[j + 1], t); } } } for (int i = 0;i < m;i++) { printf("%s\n", a[i]); } } |
Double click to view unformatted code.