我正在尝试学习如何自己编写代码,并且在计算中遇到了一些困难。有人可以在下面解释为什么pf
总是返回0
吗?
int main(void)
{
//solicit input from users
long long int num = get_long_long("Credit card no: ");
eprintf("%lld\n",num);
//initialize
int i =0;
int j =0;
int counter =0;
string status;
//find length of input
while (num>0)
{
num/= 10;
counter++;
}
printf("counter is %i\n",counter);
//Identify card type by prefix
int power=(counter-2);
eprintf("power is %i\n", power);
int dp = pow(10,power);
eprintf("divofp is %i\n", dp);
//prefix=num
long long int pf=(num/dp);
eprintf("pf is %lld\n",pf);
}
答案 0 :(得分:2)
features = {c: df_train.values[:, i] for i, c in enumerate(columns)}
始终为零,因为pf
循环结束时num
设置为零。
因此,while
将始终等于零。
一种好的调试方法是逐行浏览代码,并在每个时间点查看变量的值。
这样可以帮助您缩小此类问题的范围。
答案 1 :(得分:1)
问题在于您可以获取电话号码的长度:
while (num>0)
num/=10;
此后num始终为0,因此您的最终表达式将为0,因为0 / x = 0(x!= 0)。