Pagini recente » Cod sursa (job #94095) | Cod sursa (job #2619042) | Cod sursa (job #147467) | Cod sursa (job #2088954) | Cod sursa (job #302136)
Cod sursa(job #302136)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
int n, i, j, k;
long sw;
char *s, t;
FILE *f;
f = fopen("litere.in", "r");
fscanf(f, "%d\n", &n);
s = (char*)malloc((n + 1) * sizeof(char));
sw = 0;
for(i = 0; i < n; i++) {
fscanf(f, "%c", &s[i]);
s[i + 1] = 0;
j = i - 1;
while(j >= 0 && s[j] > s[i]) {
j--;
sw++;
}
if(j < i - 1) {
t = s[i];
/*for(k = i - 1; k > j; k--)
s[k + 1] = s[k];*/
memmove(s + j + 2, s + j + 1, i - j);
s[j + 1] = t;
}
}
fclose(f);
for(i = 0; i < n; i++)
printf("%c", s[i]);
printf("\n%ld\n", sw);
f = fopen("litere.out", "w");
fprintf(f, "%ld\n", sw);
fclose(f);
free(s);
return 0;
}