Advertisement
Guest User

Untitled

a guest
Nov 25th, 2013
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #define MAX 3
  5. #define ILE 5
  6.  
  7.  
  8. char **As;
  9. char **Bs;
  10. char **T;
  11. int lengthA;//= strlen(As[0]);
  12.  
  13. size_t lenA[ILE];
  14.  
  15. int place[ILE];
  16.  
  17. int getK(int j){
  18. int k = 0, i;//, j;
  19. for(i = 0; i < MAX; i++){
  20. if((int)As[j][i] > k){
  21. k = (int)As[j][i];
  22. }
  23. }
  24.  
  25. return k;
  26. }
  27.  
  28. void CSort(int p){
  29.  
  30. int k = 123;
  31. int C[k];
  32. int i;
  33.  
  34. for(i = 0; i <= k; i++){
  35. C[i] = 0;
  36. }
  37.  
  38. for(i = 0; i < ILE; i++){
  39. C[(int)As[i][p]]++;
  40. }
  41.  
  42. for(i = 1; i <= k; i++){
  43. C[i] = C[i] + C[i - 1];
  44. }
  45.  
  46. for(i = 0; i < ILE; i++){
  47. Bs[C[(int)As[i][p]] - 1] = As[i];
  48. C[(int)As[i][p]]--;
  49. }
  50.  
  51.  
  52. }
  53.  
  54. void RSort(int d){
  55. int i;
  56. for(i = d; i >= 0; i--){
  57. CSort(i);
  58. memcpy(As, Bs, ILE*MAX);
  59. //memset(Bs, 0, ILE*MAX);
  60. puts("wykonane!");
  61. }
  62. }
  63.  
  64. void wczytaj(){
  65. // FILE *f = fopen("nazwiskaASCII", "r");
  66. FILE *f = fopen("plik", "r");
  67. int i;
  68. char tmp[MAX];
  69. int len;
  70. for(i = 0; i < ILE; i++){
  71. // fscanf(f, "%i", &place[i]);
  72. fscanf(f, "%s", tmp);
  73. len = strlen(tmp);
  74. As[i] = (char*)malloc(sizeof(char)*MAX);
  75. Bs[i] = (char*)malloc(sizeof(char)*MAX);
  76. strcpy(As[i], tmp);
  77. strcpy(Bs[i], tmp);
  78. lenA[i] = len;
  79.  
  80. }
  81. printf("Wczytano prawidlowo!\n");
  82. fclose(f);
  83. }
  84. void wyswietl(char **a){
  85. int i;
  86. for(i = 0; i < ILE; i++){
  87. //int k = getK(i);
  88. printf("%i. %s \n",i, a[i]); //, lenA[i], k);
  89. }
  90. printf("\n");
  91.  
  92. }
  93. void zapisz(){
  94. FILE *f = fopen("nazwiskaSORTED", "w");
  95. int i;
  96. for(i = 0; i < ILE; i++){
  97. // fprintf(f, "%i\t%s\n",place[i], As[i]);
  98. fprintf(f, "%s \n", Bs[i]);
  99. }
  100.  
  101. fclose(f);
  102. printf("Zapisano pomy��lnie!\n");
  103. }
  104.  
  105.  
  106. int main(void){
  107. //system("./slowo");
  108. int i;
  109. As = (char**)malloc(ILE*sizeof(char*));
  110. Bs = (char**)malloc(ILE*sizeof(char*));
  111. T = (char**)malloc(ILE*sizeof(char*));
  112. wczytaj();
  113. //memset(Bs, 0, ILE*10);
  114. //int k = getK(0);
  115. lengthA = strlen(As[0]);
  116.  
  117. printf("\n");
  118.  
  119.  
  120. wyswietl(As); // shows table AS
  121. wyswietl(Bs);
  122. RSort(1);
  123. wyswietl(As);
  124. wyswietl(Bs);
  125. for(i = 0; i < ILE; i++){
  126. printf("%i ", lenA[i]);
  127. }
  128.  
  129. //zapisz();
  130. // free(As);
  131. // free(Bs);
  132.  
  133. return 0;
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement