fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. void coloca(char nomes[][100], char *frase, int *tam);
  5. void ordena(char nomes[][100], int tam);
  6. int main(int argc, char** argv)
  7. {
  8. char nomes[100][100], frase[2501];
  9. int tam, i, teste;
  10. scanf("%d", &teste);
  11. while(teste--)
  12. {
  13. tam = 0;
  14. scanf("%[^\n]", frase);
  15. coloca(nomes, frase, &tam);
  16.  
  17. ordena(nomes, tam);
  18. printf("\n\n%s", nomes[0]);
  19. for(i = 1; i < tam; i++)
  20. {
  21. printf(" %s", nomes[i]);
  22. }
  23. printf("\n");
  24. }
  25. return 0;
  26. }
  27.  
  28. void coloca(char nomes[][100], char *frase, int *tam)
  29. {
  30. char *ptr = strtok(frase, " ");
  31. while(ptr != NULL)
  32. {
  33. strcpy(nomes[(*tam)++], ptr);
  34. ptr = strtok(NULL, " ");
  35. }
  36. }
  37.  
  38. void ordena(char nomes[][100], int tam)
  39. {
  40. int i, j, max;
  41. char aux[100];
  42. for(i = 0; i < tam-1; i++)
  43. {
  44. max=i;
  45. for(j = i + 1; j < tam; j++)
  46. {
  47.  
  48.  
  49. if(strlen(nomes[j]) > strlen(nomes[max]))
  50. max=j;
  51.  
  52. }
  53. strcpy(aux, nomes[i]);
  54. strcpy(nomes[i], nomes[max]);
  55. strcpy(nomes[max], aux);
  56. }
  57. }
  58.  
Success #stdin #stdout 0s 9424KB
stdin
1
Top Coder comp Wedn at midnight
stdout

midnight Coder comp Wedn Top at