Advertisement
ebx

Najveci veliki broj u nizu

ebx
Jun 12th, 2011
590
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.18 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. typedef struct {
  6.     char broj[51];
  7.     int cif;
  8.     } BROJ;
  9.    
  10. void read(BROJ*);
  11. int poredjenje(BROJ, BROJ);
  12. void ispis(BROJ);
  13.  
  14. int main(int argc, char **argv)
  15. {
  16.     BROJ x;
  17.     int n, i;
  18.     BROJ t[2];
  19.     unos: printf("Koliko brojeva unosite? ");
  20.     scanf("%d", &n);
  21.     if(n==1) goto unos;
  22.     if(n==0) goto unos;
  23.     read(&x);
  24.     strcpy(t[0].broj, x.broj);
  25.     t[0].cif=x.cif;
  26.     for (i=1; i<n; i++ ) {
  27.         read(&x);
  28.         strcpy(t[1].broj, x.broj);
  29.         t[1].cif=x.cif;
  30.         if(poredjenje(t[0], t[1])==-1) {
  31.             strcpy(t[0].broj, t[1].broj);
  32.             t[0].cif=t[1].cif;
  33.             }
  34.         }
  35.     ispis(t[0]);
  36.     return 0;
  37. }
  38. void read(BROJ *x){
  39.     printf("Unesite broj: ");
  40.     scanf("%s", x->broj);
  41.     x->cif=strlen(x->broj);
  42. }
  43. int poredjenje(BROJ x, BROJ y) {
  44.         int i;
  45.         if(x.cif > y.cif)
  46.             return 1;
  47.         else if(x.cif < y.cif) return -1;
  48.         else {
  49.             for (i=0; i<x.cif; i++)
  50.             if (*((x.broj)+i) > *((y.broj)+i))
  51.                 return 1;
  52.             else if (*((x.broj)+i) < *((y.broj)+i)) return -1;
  53.             else continue; 
  54.         }  
  55.     return 0;
  56. }
  57. void ispis(BROJ x){
  58.         int i;
  59.         printf("Najveci broj je: ");
  60.         for (i=0; *(x.broj+i)=='0'; i++);
  61.         for (; i<x.cif; i++)
  62.         printf("%c", *(x.broj+i));
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement