codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <stdio.h> #include <stdlib.h> #include <string.h> #define max(a,b) a>b?a:b long func(double, double); int func2(char *); long func(double a, double b) { /* 返り値:変動幅 */ char sa[20], sb[20]; int i; sprintf(sa, "%f", a); sprintf(sb, "%f", b); i = max(func2(sa), func2(sb)); while (i--) { a *= 10; b *= 10; } return b - a; } int func2(char *s) { /* 返り値:小数点以下の有効桁数 */ int i, l; i = l = strlen(s); while (i--) { if (s[i] != '0' || s[i] == '.') break; } l = i; while (1) { if (s[i] == '.') break; i--; } return l - i; } int main() { double a, b, w[][2] = {{1.2345, 1.2350}, {100.0005, 100.0050}, {80.25, 81.25}, {80.0, 100.0}}; int i, debug = 1; if (debug) { for (i = 0; i < sizeof(w) / sizeof(w[0]); i++) { printf("%ld\n", func(w[i][0], w[i][1])); } } else { printf("a b = "); scanf("%lf %lf", &a, &b); printf("%ld\n", func(a, b)); } return 0; }
Private
[
?
]
Run code
Submit