Advertisement
VIKTOR21

Programiranje 14.5.2015

May 14th, 2015
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.77 KB | None | 0 0
  1.  
  2.  
  3.  
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <string.h>
  7. #define MAX_GRAD 7
  8. #define MAX_DUZ 20
  9.  
  10. int main()
  11. {
  12. char gradovi[MAX_GRAD*MAX_DUZ];
  13. int indexi[MAX_GRAD];
  14. int index = 0, br_grad = 0, uk_duz = 0, i, duz;
  15.  
  16. printf("Unesite nazive gradova:\n");
  17.  
  18. do{
  19. duz = 0;
  20. index = uk_duz;
  21. gets(&gradovi[index]); // stavljamo gets umjesto scanf da bi pokrili i razmak znaci uzima sve dok se ne pritisne enter
  22. duz = strlen( &gradovi[index]);
  23. uk_duz = uk_duz + duz + 1;
  24.  
  25. if (duz != 0)
  26. {
  27. for (i = br_grad - 1; i >= 0; i--)
  28. if (strcmp(&gradovi[indexi[i]], &gradovi[index])>0)
  29. indexi[i+1]= indexi[i];
  30. else
  31. break;
  32. indexi[i+1]=index;
  33. br_grad++;
  34. }
  35.  
  36. }
  37. while (br_grad < MAX_GRAD && duz!=0);
  38.  
  39. printf("Sortiran spisak gradova\n\n");
  40. for (i = 0; i < br_grad; puts(&gradovi[indexi[i++]]));
  41.  
  42.  
  43. for (i = 0; i<uk_duz; i++)
  44. printf("%c", gradovi[i]);
  45. for (i = 0; i<10; i++)
  46. printf("%d", i);
  47.  
  48.  
  49. return 0;
  50. }
  51.  
  52. /*
  53.  
  54. // ovaj drugi kod radi sa adresama i brzi je
  55. int main()
  56. {
  57. char gradovi[MAX_GRAD*MAX_DUZ];
  58. char *adrese[MAX_GRAD];
  59. char *adresa, *sled_znak = gradovi;
  60. int br_grad = 0, i, duz;
  61.  
  62. printf("Unesite nazive gradova:\n");
  63.  
  64. do{
  65. duz = 0;
  66. adresa = sled_znak;
  67. gets(adresa); // stavljamo gets umjesto scanf da bi pokrili i razmak znaci uzima sve dok se ne pritisne enter
  68. duz = strlen( adresa);
  69. sled_znak = sled_znak + duz + 1;
  70.  
  71. if (duz != 0)
  72. {
  73. for (i = br_grad - 1; i >= 0; i--)
  74. if (strcmp(adrese[i], adresa)>0)
  75. adrese[i+1]= adrese[i];
  76. else
  77. break;
  78. adrese[i+1]=adresa;
  79. br_grad++;
  80. }
  81.  
  82. }
  83. while (br_grad < MAX_GRAD && duz!=0);
  84.  
  85. printf("Sortiran spisak gradova\n\n");
  86. for (i = 0; i < br_grad; puts(adrese[i++]));
  87.  
  88. for (i = 0; i<10; i++)
  89. printf("%c", gradovi[i]);
  90.  
  91.  
  92. return 0;
  93. }
  94. */
  95.  
  96. #include <stdio.h>
  97. #include <stdlib.h>
  98. #include <string.h>
  99. #define MAX_DUZ 20
  100.  
  101. int main()
  102. {
  103. char **gradovi, *grad;
  104. int br_grad=0, i , duz;
  105.  
  106. printf("Upisite nazive gradova \n");
  107.  
  108. gradovi = malloc((br_grad+1)* sizeof(char * ));
  109.  
  110. do
  111. {
  112. gradovi=realloc(gradovi, (br_grad+1)*sizeof(char *));
  113. printf("gradovi:: %p\n", gradovi);
  114. duz = 0;
  115. grad = malloc( 2*MAX_DUZ * sizeof (char));
  116. printf("gradovi:: %p\n", gradovi);
  117. gets(grad);
  118. duz = strlen(grad);
  119. grad = realloc(grad, (duz+1)*sizeof(char));
  120. if(duz!=0 && grad)
  121. {
  122.  
  123.  
  124. for (i=br_grad-1; i>=0; i--)
  125. if (strcmp(gradovi[i], grad ) >0)
  126. gradovi[i+1]=gradovi[i];
  127. else
  128. break;
  129. gradovi[i+1]=grad;
  130. br_grad++;
  131. }
  132.  
  133. }
  134. while (duz!=0);
  135.  
  136. printf("spisak gradova\n");
  137. for (i=0; i<br_grad;puts(gradovi[i++]));
  138.  
  139. return 0;
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement