在这段代码,我想知道是什么之后,如果块执行的代码中的其他执行和代码之间的区别?执行的其他块码后,如果块
#include <iostream>
using namespace std;
int digits(int number, int value, int times){
int counter = times;
counter++;
int result = number/value;
value=value*10;
if (result != 0){
digits(number,value,counter);
}
return counter;
}
int main() {
int number,no_of_digit;
cout << "Enter the number : ";
cin >> number;
no_of_digit = digits(number, 10, 0);
cout << "No of digits are : " << no_of_digit << "\n";
return 0;
}
此代码无法正常工作。它给出值1. 但是,如果我把return counter;
在其他块它的作品。为什么这样?
使用正确的工具来解决这些问题是你的调试器。您应该先询问Stack Overflow,然后逐行执行代码。如需更多帮助,请阅读[如何调试小程序(由Eric Lippert撰写)](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)。至少,你应该[编辑]你的问题,以包含一个[Minimal,Complete,and Verifiable](http://stackoverflow.com/help/mcve)例子来重现你的问题,以及你在调试器中所做的观察。 –