#include <stdio.h>int main(){ FILE*inp, *outp; inp = fopen("input.txt","r"); outp = fopen("output.txt","w"); int ID; char ch; double result; double num_O = 0.000; double num_H = 0.000; int status=fscanf(inp,"%d",&ID); while(EOF != status) { status = fscanf(inp,"%c",&ch); if('H' == ch) { num_H++; } else if('O' == ch) { num_O++; } else if('/n' == ch) { int temp = (int)(num_H*1000.000/(num_H+num_O)+0.5); result = (double)(temp/1000.000); fprintf(outp,"%d 安打率:%.3f/n",ID,result); printf("%d 安打率:%.3f/n",ID,result); num_O = 0.000; num_H = 0.000; status = fscanf(inp,"%d",&ID); } }
return 0;
}
在程序中实现了从文本读取数据和存入数据,为了方便也在控制台显示;
注意文本的结束标志
其中实现计算结果的四舍五入,主要是 + 0.5;
注意小数点的位置