krilo (napisa): |
1) Postoji li u c-u neki %nešto za ispis u binarnom obliku (kao što su %x i %o za ispis u heksadecimalnom i oktalnom obliku)? |
Spoiler : |
Citat: |
2) Napišite program koji učitava realni broj dvostruke točnosti t, [...] te cijele brojeve k, c i a.
Program treba [...] u **aritmetici dvostruke točnosti izračunati i ispisati vrijednost izraza [tex]t^5 + (k^3+a)/c^3[/tex] ** [...] Program mi nije problem napisati, osim dijela označenog s **. Ne mogu dobiti dobre rezultate jer se izraz [tex](k^3+a)/c^3[/tex] računa pomoću integera i onda kad se zbroji s [tex]t^5[/tex] opet dobijem int (npr. za t=1, k=c=a=2), a trebam dobiti decimalni broj. Kako zaobići taj problem? |
Kod: |
int main(void) { double t; int k, c, a; double k_dbl, c_dbl, a_dbl; /* ove varijable će nam biti korisne za izbjegavanje integer aritmetike */ double rezultat; scanf("%g%d%d%d", &t, &k, &c, &a); k_dbl = k; c_dbl = c; a_dbl = a; rezultat = t * t * t * t * t + (k_dbl * k_dbl * k_dbl + a_dbl) / (c_dbl * c_dbl * c_dbl); printf("%g", rezultat); return 0; } |
krilo (napisa): |
Program super radi s "normalnim" (manjim) brojevima, i ja pošaljem .c file na stranicu (tako svih 5 zadataka tog tipa), a on meni na mail vrati poruku da niti jedan program ne valja s argumentom tipa "netočno za input: 3342.7814, 9564.9266, 5550.5548". I tako za sve zadatke. Kako da ga "natjeram" da prihvaća takve monstrozitete od brojeva i je li to uopće moguće? |
Kod: |
#include <stdio.h>
#include <stdlib.h> int main(void) { double x, y, z; printf ("Upisi tri realna broja: "); scanf ("%lf %lf %lf", &x, &y, &z); double m, M; m=x; if (y<m) m=y; if (z<m) m=z; M=x; if (y>M) M=y; if (z>M) M=z; double a= m*m + M*M*M; printf ("f = m^2+M^3 = %g", a); return 0; } |
output generated using printer-friendly topic mod. Vremenska zona: GMT + 01:00.