5.1 /* lasketaan eksponenttifunktio Taylorin sarjasta */ #include #include #include double taylor (double x, int n); int main(void) { double x; int n ; printf("anna x ja termien maara: ") ; scanf("%lf %d", &x, &n) ; /*jos virheellinen termien lkm, lopetetaan */ if (n <= 0) { printf("termien lukumaaran oltava > 0\n") ; return(1) ; } printf("exp(%f)=%f\n", x, taylor(x,n)) ; return(0); } double taylor (double x, int n) { double summa = 1.0, termi = 1.0 ; int i; for (i=1; i #include int main(void) { char c; int n=0; printf("kirjoita tekstia, lopeta syotto antamalla ^D eli control-D eli\n"); printf("EOF eli End-of-file.\n"); printf("huomaa, etta stdin on ns. rivipuskuroitu, eli antamasi teksti\n"); printf("kasitellaan vasta kun annat rivinvaihdon. voit myos kokeilla\n"); printf("redirektointia tiedostosta kutsumalla ohjelmaa ./5_2 < tiedosto.txt\n"); printf("\n"); while ( scanf("%c", &c) != EOF ) { if ( c != ' ' ) printf("%c", c); else n++; } printf("\nblankkoja %d kpl.\n", n); return(0); } 5.3 #include #include #include int main(int argc, char **argv) { float a, b, c, x1, x2 ; if (argc < 4) { fprintf(stderr,"ratkaistaan yhtalo a*x^2 + b*x + c = 0.\n"); fprintf(stderr,"kaytto: %s a b c\n", argv[0]); exit(1); } a = atof(argv[1]); b = atof(argv[2]); c = atof(argv[3]); if (a==0.0) printf("ei toisen asteen yhtalo\n"); else { if (b*b - 4*a*c < 0) { x1 = - b/(2*a); x2 = sqrt(4*a*c - b*b)/(2*a); printf("x = %f + %fi ja x = %f - %fi\n", x1, x2, x1, x2); } else { x1 = (- b + sqrt(b*b - 4*a*c))/(2*a); x2 = (- b - sqrt(b*b - 4*a*c))/(2*a); printf("x = %f ja x = %f\n", x1, x2); } } return(0); }