这是代码。
bool b_div(int n_dividend)
{
for (int iii = 10 ; iii>0 ; iii--)
{
int n_remainder = n_dividend%iii;
if (n_remainder != 0)
return false;
if (iii = 1)
return true;
}
}
在测试了我为程序制作的这个函数之后,函数似乎停在了if(n_remainder!= 0)部分。现在,函数应该测试函数所接受的数字是否可以除以10到1之间的所有数字。(直到它返回true才会得到数字)我知道它的第一个数字是2520但是甚至在这个数字在if(n_remainder!= 0)处停止。所以我希望得到一些建议!我无法排除故障!我应该寻找的任何链接或单词都很棒!我仍然是编程的新手,所以任何你可以给予学习的帮助都会摇滚!谢谢!
答案 0 :(得分:9)
将您的最后一个if语句更改为:
if (iii == 1)
return true;
目前,您只有一个等号,它将变量iii设置为1,并且始终为true。通过使用双等于它将比较iii和1。
答案 1 :(得分:3)
除了SC Ghost的答案之外,您实际上还可以更多地清理您的功能:)
bool b_div(int n_dividend) {
for (int i = 10 ; i > 1 ; i--) {
int n_remainder = n_dividend % i;
if (n_remainder != 0) {
return false;
}
}
return true;
}
一些注释,
i > 1
if(i == 1)
,您可以在for循环后完全删除return true
检查并始终return false
。它基本上消除了不必要的检查。iii
命名为i
更为标准,我更喜欢括号,就像我上面写的那样(这当然完全取决于个人喜好,随你做)