原题目:
从键盘中输入一个数字(可以包含小数点,其位数在60位以下,求其整数的有效位数,如输入 0123.456,返回值为整数有效位数为3)
1) 输入数据为浮点型,不用数组,不用字符串,只有变量的算术运算实现此功能。
2) 使用数组来进行编程。
说一下第一个:
最开始写的demo:
float res = 0123.456 float youxiaoweishu(float num) { if(num/10==0) return 1; return 1.0 + youxiaoweishu(num%10); }
要求输入为浮点型,有以前算一个整数各个位数和的基础,很快码出代码,但是发现在递归函数的过程中出现了一些问题!小红字提示我输入的实参必须是整数或者枚举变量。我枚举你妹啊,我就一个num%10,不就是数字除以10取余数麽!然后求助于群中大神并度娘看一番,无果,于是尝试着写一个比较的函数
int youxiaoweishu1(int num) { if(num/10==0) return 1; return 1 + youxiaoweishu1(num%10); }
他他妈的不报错了你知道吗,为啥不报错了呢?想了想,仔细想一下错误提示,整数,整数,整数,
%的操作数应该是整数啊!!