Advertisement
Coriic

Sortowanie tablicy stringów

Dec 12th, 2015
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #define ROZMIAR 50
  4.  
  5. void sortowanie(char tab[][ROZMIAR], int pom[], int n){
  6. int i, j, m;
  7. char temp[ROZMIAR];
  8. int temp1, min, temp3;
  9. for (m=0; m<n; m++){
  10. for(i=0; i<n-1; i++){
  11. if (pom[i]>pom[i+1]) min=pom[i+1];
  12. if (pom[i]<=pom[i+1]) min=pom[i];
  13. for (j=0; j<min; j++){
  14. if(tab[i][j]>tab[i+1][j]){
  15. temp1=pom[i];
  16. pom[i]=pom[i+1];
  17. pom[i+1]=temp1;
  18. strcpy(temp, tab[i]);
  19. strcpy(tab[i], tab[i+1]);
  20. strcpy(tab[i+1], temp);
  21. break;
  22. }
  23. }
  24. }
  25. }
  26. for (m=0; m<n; m++){
  27. for(i=0; i<n-1; i++){
  28. if((tab[i][0]==tab[i+1][0]) && (pom[i]>pom[i+1])){
  29. temp1=pom[i];
  30. pom[i]=pom[i+1];
  31. pom[i+1]=temp1;
  32. strcpy(temp, tab[i]);
  33. strcpy(tab[i], tab[i+1]);
  34. strcpy(tab[i+1], temp);
  35. }
  36. }
  37. }
  38. }
  39.  
  40. void clear (void)
  41. {
  42. while ( getchar() != '\n' );
  43. }
  44.  
  45. int main(void){
  46. char c;
  47. int i, j, n;
  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, n);
  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.  
  76. return 0;
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement