Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define MAX_GRAD 7
- #define MAX_DUZ 20
- int main()
- {
- char gradovi[MAX_GRAD*MAX_DUZ];
- int indexi[MAX_GRAD];
- int index = 0, br_grad = 0, uk_duz = 0, i, duz;
- printf("Unesite nazive gradova:\n");
- do{
- duz = 0;
- index = uk_duz;
- gets(&gradovi[index]); // stavljamo gets umjesto scanf da bi pokrili i razmak znaci uzima sve dok se ne pritisne enter
- duz = strlen( &gradovi[index]);
- uk_duz = uk_duz + duz + 1;
- if (duz != 0)
- {
- for (i = br_grad - 1; i >= 0; i--)
- if (strcmp(&gradovi[indexi[i]], &gradovi[index])>0)
- indexi[i+1]= indexi[i];
- else
- break;
- indexi[i+1]=index;
- br_grad++;
- }
- }
- while (br_grad < MAX_GRAD && duz!=0);
- printf("Sortiran spisak gradova\n\n");
- for (i = 0; i < br_grad; puts(&gradovi[indexi[i++]]));
- for (i = 0; i<uk_duz; i++)
- printf("%c", gradovi[i]);
- for (i = 0; i<10; i++)
- printf("%d", i);
- return 0;
- }
- /*
- // ovaj drugi kod radi sa adresama i brzi je
- int main()
- {
- char gradovi[MAX_GRAD*MAX_DUZ];
- char *adrese[MAX_GRAD];
- char *adresa, *sled_znak = gradovi;
- int br_grad = 0, i, duz;
- printf("Unesite nazive gradova:\n");
- do{
- duz = 0;
- adresa = sled_znak;
- gets(adresa); // stavljamo gets umjesto scanf da bi pokrili i razmak znaci uzima sve dok se ne pritisne enter
- duz = strlen( adresa);
- sled_znak = sled_znak + duz + 1;
- if (duz != 0)
- {
- for (i = br_grad - 1; i >= 0; i--)
- if (strcmp(adrese[i], adresa)>0)
- adrese[i+1]= adrese[i];
- else
- break;
- adrese[i+1]=adresa;
- br_grad++;
- }
- }
- while (br_grad < MAX_GRAD && duz!=0);
- printf("Sortiran spisak gradova\n\n");
- for (i = 0; i < br_grad; puts(adrese[i++]));
- for (i = 0; i<10; i++)
- printf("%c", gradovi[i]);
- return 0;
- }
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define MAX_DUZ 20
- int main()
- {
- char **gradovi, *grad;
- int br_grad=0, i , duz;
- printf("Upisite nazive gradova \n");
- gradovi = malloc((br_grad+1)* sizeof(char * ));
- do
- {
- gradovi=realloc(gradovi, (br_grad+1)*sizeof(char *));
- printf("gradovi:: %p\n", gradovi);
- duz = 0;
- grad = malloc( 2*MAX_DUZ * sizeof (char));
- printf("gradovi:: %p\n", gradovi);
- gets(grad);
- duz = strlen(grad);
- grad = realloc(grad, (duz+1)*sizeof(char));
- if(duz!=0 && grad)
- {
- for (i=br_grad-1; i>=0; i--)
- if (strcmp(gradovi[i], grad ) >0)
- gradovi[i+1]=gradovi[i];
- else
- break;
- gradovi[i+1]=grad;
- br_grad++;
- }
- }
- while (duz!=0);
- printf("spisak gradova\n");
- for (i=0; i<br_grad;puts(gradovi[i++]));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement