Advertisement
Guest User

Untitled

a guest
Dec 15th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.70 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. void csort(char *src, char *dest) {
  4.     long i = 0, j = 0, t, m, n;
  5.         while (src[i] != 0) {
  6.         while ( src[i]  && src[i] == ' ' ){
  7.             i += 1;
  8.         }
  9.         i += 1;
  10.         while ( src[i]  && src[i] != ' ' ){
  11.             i += 1;
  12.         }
  13.         while ( src[i]  && src[i] == ' '){
  14.             i += 1;
  15.         }
  16.         j += 1;
  17.     }
  18.     unsigned long count[j], l[j];
  19.     i = 0;
  20.     t = 0;
  21.     while (src[i]) {
  22.         while (src[i]  && src[i] == ' '){
  23.             i +=1;
  24.         }
  25.         count[t] = i;
  26.         i += 1;
  27.         while (src[i]  && src[i] != ' '){
  28.             i += 1;
  29.         }
  30.         l[t] = i - count[t];
  31.         while ( src[i]  && src[i] == ' '){
  32.             i += 1;
  33.         }
  34.         t += 1;
  35.     }
  36.     i = j;
  37.     i -= 2;
  38.     while (i >= 0) {
  39.         t = i + 1;
  40.         n = i;
  41.         while ( t < j && t >=0) {
  42.             if (l[t] < l[n]) {
  43.                 l[t] += l[n];
  44.                 l[n] = l[t] - l[n];
  45.                 l[t] -= l[n];
  46.                 count[t] += count[n];
  47.                 count[n] = count[t] - count[n];
  48.                 count[t] -= count[n];
  49.                 n = t;
  50.             }
  51.             t += 1;
  52.         }
  53.         i -= 1;
  54.     }
  55.     i = 0;
  56.         t = 0;
  57.     while ( i < j ) {
  58.         m = count[i];
  59.         while ( l[i] > 0){
  60.             dest[t] = src[m];
  61.             m += 1;
  62.             t += 1;
  63.             l[i] -= 1;
  64.         }
  65.         dest[t] = ' ';
  66.         i+=1;
  67.         t += 1;
  68.     }
  69.     dest[t - 2 + 1] = 0;
  70.  
  71. }
  72. int main() {
  73.     char src[100];
  74.     gets(src);
  75.     unsigned long i;
  76.     if(src[0] == ' '){
  77.         i = 1;
  78.     } else {
  79.         i = 2;
  80.     }
  81.     int j = strlen(src) - 2 + 1;
  82.     while (j > 0) {
  83.         if (src[j] == ' ' && src[j - 1] == ' ') {
  84.             j -= 1;
  85.             i += 1;
  86.             while ( j >= 0 && src[j] == ' '){
  87.                 j -= 1;
  88.             };
  89.         }
  90.         j -= 1;
  91.         i += 1;
  92.     }
  93.     char dest[i];
  94.     csort(src, dest);
  95.     printf("%s", dest);
  96.     return 0;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement