| 
 File: Stare vježbe/vjezbe13/80__komandna_linija_2.c 
/*     80__komandna_linija_2.c     -----     Program sluzi za rjesavanje kvadratne jednadzbe a*x^2+b*x+c==0.     Koeficijenti se ucitavaju s komandne linije, a u slucaju da ih se ne     unese dovoljno na komandnoj liniji, dodatno se ucitavaju s tastature. */   #include <stdio.h> #include <math.h> #include <stdlib.h>   int kvad_jed(double a, double b, double c,              double *x1, double *x2, double *y1, double *y2) {     double d;       d=b*b-4*a*c;     if (d==0) {         *x1 = *x2 = -b / (2*a);         return 1;     }     else if (d>0) {         *x1 = (-b - sqrt(d) ) / (2 * a);         *x2 = (-b + sqrt(d) ) / (2 * a);         return 2;     }     else {         *x1 = *x2 = -b / (2*a);         *y1 = - ( *y2 = (sqrt(-d) / (2*a) ) );         return -2;     } }   int main(int argc, char *argv[]){     double koef[3], re1, im1, re2 , im2;     int i;       /* Ucitavamo koeficijente s komandne linije */     for(i=0; i<argc-1; i++) {         koef[i] = atof(argv[i+1]);     }     /* Ukoliko je uneseno manje od tri koeficijenta na komandnoj liniji,        preostale dodatno ucitavamo s tastature */     for(; i<3; i++) {         printf("Unesite %d. koef. u kvadratnoj jednadzbi: ", i +1);          scanf("%lf", koef+i);     }       i = kvad_jed(koef[0], koef[1], koef[2], &re1, &re2, &im1, &im2);       printf("\nKvadratna jednadzba %.3fx^2 + %.3fx + %.3f == 0",             koef[0], koef[1], koef[2]);     printf("\nima %d %s rjesenj%c:\n",                      abs(i), (i<0 ? "kompleksna" : ""), (i==1 ? 'e' : 'a'));     if(i==1)     else if (i==2)         printf("\tx1=%lf,\n\tx2=%lf\n", re1, re2 );         else         printf("\tx1=%lf+i*%lf,\n\tx2=%lf+i*%lf\n", re1, im1, re2, im2 );            return 0; }   
 
          
  
       |