例子问题
问题1:程序的正确性
使用函数
考虑下面的c++代码来执行以下减法:
9 - 6:
# include < iostream >
使用命名空间std;
Int main() {
Int total = 0;
cout << "这段代码执行以下数学运算:9 - 6 = ";
Total = sub(6,9);
count << total;
}
Int sub(Int num1, Int num2) {
返回(num2 - num1);
}
代码有什么问题吗?
这段代码没有任何问题。
缺少函数原型。
代码缺少数学库。应该有
# include
总的来说,这些论点应该被推翻。如:total = sum(9,6);
缺少函数原型。
看一下每个答案,我们可以看到子函数中传递的参数顺序是正确的,因为num1是从num2中减去的。此外,对于简单的数学操作,不需要包含数学库。最后,任何操作都可以在函数或main中完成;没有错误的方法,但是,创建和使用函数使main()中的代码更容易阅读和清晰。
现在在main()中,当调用sub()函数时,该函数尚未定义;这意味着它不在作用域中。这意味着我们应该把函数原型放在main()之前,这样当函数被调用时,编译器就知道有一个名为sub()的函数,它接受两个整数形参并返回一个整数。因此,这个添加将解决我们的范围问题。
# include < iostream >
使用命名空间std;
Int sub(Int num1, Int num2);//添加的是函数原型
Int main() {
Int total = 0;
cout << "这段代码执行以下数学运算:9 - 6 = ";
Total = sub(6,9);
count << total;
}
Int sub(Int num1, Int num2) {
返回(num2 - num1);
}
注意:这个问题的另一个修复是将函数放在main()之前。虽然这个方法不是特别推荐,因为它使main()更难找到,但人们仍然使用它。下面是通过将函数置于main()之前来解决问题的示例。注意,使用此方法时不需要函数原型:
# include < iostream >
使用命名空间std;
Int sub(Int num1, Int num2) {
返回(num2 - num1);
}
Int main() {
Int total = 0;
cout << "这段代码执行以下数学运算:9 - 6 = ";
Total = sub(6,9);
count << total;
}