Anarchy Golf の Bessel function J_0 の最強言語は bc ではなかった件について

敗因を挙げてみる。

read() が EOF でビジーループになる。

例えば 1 行目の内容で繰り返し回数を決めるなどしなければならない。他に何かいいアイデアあります?

小数を表示させようとすると、整数部が 0 の場合整数部が省略される。

0.1 を表示させると ".1"、-0.1 をを表示させると "-.1" となる。符号と 0 を自分で出力するはめになった。

bc では指定した精度以下は切り捨てられるが、ゴルフ場では小数点以下 7 桁目を四捨五入した結果を出力する必要がある。

j(0,0.2)=0.99002497... なのだが scale=6 とすると .990024 が表示される。しかし、要求されている出力は 0.990025 である。scale=7; y=j(0,x); scale=6; y=(y+.0000005)/1.0 みたいな事をすれば (y>=0 の場合) 望みのものが得られる。
いやちょっとまて、C の printf の "%f" は Banker's rounding なのか?

#include<stdio.h>

int main()
{
    printf("%.20f\n",1.0078125);
    printf("%f\n",1.0078125);
    printf("%.20f\n",1.0234375);
    printf("%f\n",1.0234375);
    return 0;
}

の出力結果が

1.00781250000000000000
1.007812
1.02343750000000000000
1.023438

だ。(この問題は私が作ったもので、「正解」は Linux 上で C 言語で書いたプログラムで作成した。そのため「正解」と一致するかどうかは C の printf と一致するかどうかで決まる。)