訳を書こうとおもったけど面倒くさすぎなのでコード
#include <stdio.h>
#include<math.h>
#define PI 3.1415926535
#define L(X,Y) for(i=X;i<Y;i++)
#define ODD 0
#define EVEN 1
double read_double(FILE *infile){double d;fscanf(infile, "%lf", &d);return d;}
int round_double_to_int(double number){return (int)(number+.5);}
int mod_integers(int number1, int number2){return number1%number2;}
int is_even(int number){return(number&1)?ODD:EVEN;}
double multiply_double(double number1, double number2){return number1*number2;}
double divide_double(double number1, double number2){return(number2==0.0)?0.0:(number1/number2);}
double compulte_sqrt(double number){return sqrt(number);}
int translate_random(double number){double n=number; return round_double_to_int((n<0.0)?(-PI*n):(n<11.0)?(2.0*n):(n<21.0)?(n+1.0):(n<31.0)?(n+PI):(n<41)?(n/4.0):(n<=50.0)?(n-1.0):(n+n-1.0));}
void print_int(FILE *outfile, int number){fprintf(outfile, "%d",number);}
void print_double(FILE *outfile, double number){fprintf(outfile,"%1000f",number);} //()の意味がよく分からん
int main(void){FILE*ifp=fopen("input.dat","r"),*ofp=fopen("output.dat","w");double d[10]; int i;
L(0,5)d[i]=read_double(ifp);
L(0,5)print_double(ofp,divide_double(d[i],PI));
L(0,5)print_double(ofp,divide_double(d[i],0.0));
L(5,10)d[i]=read_double(ifp);
L(0,10)print_double(ofp,multiply_double(d[i],PI));
L(0,5)print_int(ofp,round_double_to_int(d[i]));
L(0,5)print_int(ofp,is_even(round_double_to_int(d[i])));
L(5,10)print_int(ofp,mod_integers(round_double_to_int(d[i]),5));
L(0,5)print_double(ofp,compulte_sqrt(d[i]));
L(0,5)print_int(ofp,translate_random(d[i]));
fclose(ifp);fclose(ofp);return 0;
}
ギリギリ?意味が分からんところは自分で修正ヨロ。こんなコード自分でも書きたくない。