[英]How do i write a function with a counter inside?
第一周编码请善待。
我需要从用户那里得到 4 个输入,如果其中 2 个是-100
,我需要 function 说你失败了。
我需要在function here
并且可能在里面添加一个计数器,但我不知道如何。
代码看起来像这样
cout << "What are the grades of your 4 take-home exams? ";
cin >>th1>>th2>>th3>>th4;
function here
我需要从用户那里得到 4 个输入
cin >>th1>>th2>>th3>>th4;
看起来这是正确的。
如果其中 2 个是 -100
答案就在你的问题本身。 专注于if
一词。
编程语言有各种不同的方法来检查事物,检查某事物是否等于其他事物,或者如果某事物小于其他事物,则运行一段代码。 我们称这些条件。 如果某个条件为真,做某事,否则,做一些不同的事情。 例子:
int x = 0;
cin >> x; // take input from user
if (x > 20)
{
cout << "x is greater than 20";
}
else
{
cout << "x is less than 20";
}
此外,您甚至可以同时检查两个变量!
int x = 1;
int y = 2;
if (x == 1 && y == 2)
cout << "X is 1, and y is 2";
else
//print something else
函数是一种将一些代码放入块中的方法,您可以随时重复使用。 想象一下,假设您正在制作蛋糕,并且需要某种糖浆。 现在,如果您愿意,您可以每次从零开始制作糖浆,或者您可以制作大量糖浆,并且每次您想制作蛋糕时都使用它。 这绝对是一个不好的例子,但你明白了。
让我们做一个小的 function。 此 function 将采用int
作为参数并检查该参数是否等于 100。 如果它等于 100,我们将return
一个值: 1
给调用者。 否则我们将返回一个值: 0
:
int checkIfHundredOrNot(int value)
{
if (value == 100)
return 1;
else
return 0;
}
//caller
int main()
{
int x = 0;
cin >> x;
int result = checkIfHundredOrNot(int value);
cout << "Result is: " << result;
return 0;
}
使用此信息,尝试解决您的问题。 它应该相当简单。 如果您发现任何困难,请谷歌它。 你会在那里找到你所有的答案。 具体谷歌这个:
=
和==
之间有区别吗?然后仔细阅读它们,并用自己的双手写下每一段代码,然后重复直到你理解为止。
所以我自己是个菜鸟,但我会试一试。 我建议看看我的解决方案,并尝试以“你”的方式做你的,因为还有更多的途径可以获得正确的答案。 如果你真的很明确只有 4 个输入,你可以试试这个:
bool isFail(int a, int b, int c, int d) {
int counter = 0;
if (a == -100) {
counter++;
}
if (b == -100) {
counter++;
}
if (c == -100) {
counter++;
}
if (d == -100) {
counter++;
}
if (counter >= 2) {
return true;
}
else
{
return false;
}
}
function 基本上需要 4 个整数,并根据 -100 检查每个整数。 如果结果是 -100,则计数器增加 1。之后,我们只需检查计数器是否等于或大于 2,如果是,则返回真值,因为它失败了(两个或更多输入为 -100)。 如果不是,我们只返回一个 false。
在您的主要 function 中,您可以简单地初始化变量,输入它们并简单地执行 function 调用,您可以将其与另一个“真实”值进行比较。 如果结果是肯定的,则打印出失败消息。
int a, b, c, d;
std::cin >> a >> b >> c >> d;
if (isFail(a, b, c, d) == true) {
std::cout << "Fail!" << std::endl;;
}
else
{
std::cout << "Passed!" << std::endl;
}
此致!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.