Advertisement
Coriic

2

Dec 12th, 2015
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #define ROZMIAR 50
  4.  
  5. char c;
  6. int i, j, n, a, m;
  7.  
  8. void sortowanie(char tab[n][ROZMIAR], int pom[n]){
  9. char temp[ROZMIAR];
  10. int temp1, min;
  11. for (m=0; m<n; m++){
  12. for(i=0; i<n-1; i++){
  13. if (pom[i]>pom[i+1]) min=pom[i+1];
  14. if (pom[i]<=pom[i+1]) min=pom[i];
  15. for (j=0; j<min; j++){
  16. if(tab[i][j]>tab[i+1][j]){
  17. temp1=pom[i];
  18. pom[i]=pom[i+1];
  19. pom[i+1]=temp1;
  20. strcpy(temp, tab[i]);
  21. strcpy(tab[i], tab[i+1]);
  22. strcpy(tab[i+1], temp);
  23. break;
  24. }
  25. }
  26. }
  27. }
  28. for (m=0; m<n; m++){
  29. for(i=0; i<n-1; i++){
  30. if((tab[i][1]==tab[i+1][1]) && (pom[i]>pom[i+1])){
  31. temp1=pom[i];
  32. pom[i]=pom[i+1];
  33. pom[i+1]=temp1;
  34. strcpy(temp, tab[i]);
  35. strcpy(tab[i], tab[i+1]);
  36. strcpy(tab[i+1], temp);
  37. }
  38. }
  39. }
  40. }
  41.  
  42. void clear (void)
  43. {
  44. while ( getchar() != '\n' );
  45. }
  46.  
  47. int main(void){
  48. printf("Podaj ile stringow chcesz posortowac: ");
  49. scanf("%d", &n);
  50. char tab[n][ROZMIAR];
  51. int pom[n];
  52. for (i=0; i<n; i++){
  53. if (i==0) clear();
  54. printf("Podaj %d. string: ", i+1);
  55. for(j=0;(c=getchar())!=EOF && c!='\n' && j<ROZMIAR;j++){
  56. tab[i][j]=c;
  57. }
  58. pom[i]=j;
  59. }
  60. printf("Przed sortowaniem \n");
  61. for (i=0; i<n; i++){
  62. for (j=0; j<pom[i]; j++){
  63. printf("%c", tab[i][j]);
  64. if (j==pom[i]-1) printf("\n");
  65. }
  66. }
  67. sortowanie(tab, pom);
  68. printf("Po sortowaniu \n");
  69. for (i=0; i<n; i++){
  70. for (j=0; j<pom[i]; j++){
  71. printf("%c", tab[i][j]);
  72. if (j==pom[i]-1) printf("\n");
  73. }
  74. }
  75. return 0;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement