View Code of Problem 126

#include <stdio.h>
#include <string.h>
int m,n;
int NX(char *s); 

int main(void)
{
	int i,len,j,t;
	char s[100],temp[100];
	char ps[100][50];
	int nx[100];
	
	scanf("%d %d", &n, &m);
	getchar();
	for (i=0; i<m; i++)
	{
		scanf("%s", &ps[i]); nx[i] = NX(ps[i]); 
	}
	
	for (i=0; i<m; i++)
		printf("%d\n", nx[i]);
	for (i=0; i<m-1; i++)
		for (j=0; j<m-1-i; j++)
			if (nx[j]>nx[j+1])
			{
				t=nx[j]; nx[j]=nx[j+1]; nx[j+1]=t;
				strcpy(temp,ps[j]); strcpy(ps[j],ps[j+1]); strcpy(ps[j+1],temp);
			}
	
	for (i=0; i<m; i++)
		puts(ps[i]);
	
	
	return 0;
}

int NX(char *s)
{
	int i,j,sum=0;
	for (i=0; i<n; i++)
		for (j=i+1; j<n; j++)
		{
			if (s[i]>s[j])
				sum++;
		}
	return sum;
}

Double click to view unformatted code.


Back to problem 126