View Code of Problem 126

#include<stdio.h>
#include<malloc.h>
#include<string.h>
#include<math.h>



int main()
{
	int n, m;
	while (scanf("%d%d", &n, &m) != EOF) {
		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);
				}
			}

		}
	}
	

}

Double click to view unformatted code.


Back to problem 126