C++如何改造整数输入的可能性计算程序以支持浮点数输入
C++程序整数输入转浮点数输入的调整方法
当前代码的适配缺口
原整数版本的通用输入函数input形参为int*类型,在主函数已经将所有集合数组改为float类型的前提下,直接传入数组会出现类型不匹配的编译错误,无法正确读取浮点数。
具体修改点(完成这一处修改即可适配所有switch分支)
- 将
input函数的形参类型从int*改为float*
原代码写法:void input(int *v)
修改后写法:void input(float *v) - 输入读取逻辑、数组下标遍历逻辑、输出拼接逻辑都不需要额外改动:C++文件流的
>>运算符原生支持浮点数读取与输出,只要类型匹配,无论输入是整数格式还是带小数位的浮点数格式,都能正确处理。
调整完成后的case2分支可运行代码
#include <fstream> using namespace std; ifstream in("multimi.in"); ofstream out("produs.out"); void input(float *v) { for(int i=1; i<=2; i++) in >> v[i]; } int main() { float a[3],b[3],c[3],d[3],e[3],s[3]; int num_tot; in >> num_tot; switch(num_tot) { case 2: input(a); input(b); for(int i=1; i<=2; i++) for(int j=1; j<=2; j++) out << a[i] << "," << b[j] << endl; break;
后续分支适配说明
所有switch分支中调用input传入的都是主函数中定义的浮点数数组,只要input函数的形参类型匹配浮点数指针,所有后续分支的原有代码不需要做任何修改,就能正常完成浮点数的读取、计算与输出流程。
内容的提问来源于stack exchange,提问作者ilie alexandru
相关产品推荐
相关产品推荐

