c – 有人可以告诉我为什么我的分数总是计算为零?
发布时间:2020-12-16 06:47:49 所属栏目:百科 来源:网络整理
导读:有人能告诉我为什么变量百分比= 0?它应该是33.3333对吗? (2/6) 因为当我运行下面的函数时,结果是 Total lines = 6 Odd lines = 2 Percent odd lines = 0 bool count_odd_lines(string a,string b){ ifstream in; ofstream out; in.open(a.c_str()); out.op
有人能告诉我为什么变量百分比= 0?它应该是33.3333对吗? (2/6)
因为当我运行下面的函数时,结果是
bool count_odd_lines(string a,string b) { ifstream in; ofstream out; in.open(a.c_str()); out.open(b.c_str()); string s; int count = 0; int odd = 0; if (in && out) { while (getline(in,s)) { count++; if (s.length() % 2 != 0) odd++; } out << "Total lines = " << count << endl; out << "Odd lines = " << odd << endl; double percent = odd/count; out << "Percent odd lines = " << setprecision(4) << percent <<endl; return true; } else return false; in.close(); out.close(); } 解决方法
有两个问题:
> odd和count都是整数,因此odd / count执行整数(即截断)除法. 您可以解决这两个问题: double percent = odd * 100.0 / count; 乘法进行缩放,并将后续除法转换为浮点除法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |