#include #include #include double yval(double a, double b) { return a * a - 1.0 / (1.0 + b * b); } int main(void) { FILE *fin = NULL; FILE *fout = NULL; double a, b; double y; /* --- 入力ファイルオープン --- */ fin = fopen("input.in", "r"); if (fin == NULL) { fprintf(stderr, "Error: cannot open input.in: %s\n", strerror(errno)); return 1; } /* --- a の読み込み --- */ if (fscanf(fin, "%lf", &a) != 1) { fprintf(stderr, "Error: failed to read parameter a from input.in\n"); fclose(fin); return 1; } /* --- b の読み込み --- */ if (fscanf(fin, "%lf", &b) != 1) { fprintf(stderr, "Error: failed to read parameter b from input.in\n"); fclose(fin); return 1; } fclose(fin); /* --- 計算 --- */ y = yval(a, b); /* --- 出力ファイルオープン --- */ fout = fopen("input.out", "w"); if (fout == NULL) { fprintf(stderr, "Error: cannot open input.out: %s\n", strerror(errno)); return 1; } /* --- 書き込み --- */ if (fprintf(fout, "%.17g\n", y) < 0) { fprintf(stderr, "Error: failed to write to input.out\n"); fclose(fout); return 1; } /* --- クローズチェック --- */ if (fclose(fout) != 0) { fprintf(stderr, "Error: failed to close input.out: %s\n", strerror(errno)); return 1; } return 0; }