【问题标题】:How do i write a function with a counter inside?我如何编写一个带有计数器的函数?
【发布时间】:2020-07-11 12:00:26
【问题描述】:

第一周编码请善待。
我需要从用户那里获得 4 个输入,如果其中 2 个是 -100,我需要函数说你失败了。

我需要实现function here 并可能在里面添加一个计数器,但我不知道怎么做。

代码看起来像这样

cout << "What are the grades of your 4 take-home exams? ";
    cin >>th1>>th2>>th3>>th4;
function here

【问题讨论】:

  • 在函数内部将计数器定义为静态。
  • 您可能想阅读以下内容:How do I ask and answer homework questions?
  • @FarhadSarvari:我建议在这种情况下使用static 变量。
  • 我强烈建议与您的教学人员交谈,但如果没有的话:如果没有函数,您将如何做到这一点?首先这样做,然后当它工作时,创建一个函数,将相关代码剪切粘贴到新函数中,并确保传递正确的变量并返回正确的变量类型。
  • int ex[4] = { th1, th2, th3, th4 }; int failCount = std::count_if(std::cbegin(ex), std::cend(ex), [] (int ele) { return ele == -100; }); if(failCount &gt;= 2) std::cout &lt;&lt; "fail"; else std::cout &lt;&lt; "pass";

标签: c++ visual-studio-2012


【解决方案1】:

我需要从用户那里得到 4 个输入

cin >>th1>>th2>>th3>>th4;

看起来这是正确的。

如果其中 2 个是 -100

1。条件句

答案就在你的问题本身。专注于if这个词。

编程语言有各种不同的方法来检查事物,检查 if 某事等于某事,或 if 某事小于 em> 别的东西,运行一段代码。我们称这些条件。如果某个条件为true,则做某事,否则,则做一些不同的事情。示例:

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

功能

函数是一种将一些代码放在一个块中的方法,您可以随时重复使用这些代码。想象一下,假设您正在制作蛋糕,并且需要某种糖浆。现在,如果您愿意,您可以每次从零开始制作糖浆,或者您可以制作大量糖浆,并在每次想要制作蛋糕时使用。这绝对是一个不好的例子,但你明白了。

让我们做一个小函数。此函数将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;
}

利用这些信息,尝试解决您的问题。它应该相当简单。如果您发现任何困难,请谷歌它。你会在那里找到你所有的答案。具体谷歌这个:

  • 什么是 C++ 中的函数参数?
  • 什么是 C++ 中的返回值?
  • 什么是 C++ 中的函数?
  • 为什么我们在 C++ 中使用函数?
  • 什么是 C++ 中的运算符?
  • 什么是 C++ 中的比较运算符?
  • === 有区别吗?

然后仔细阅读,亲手写下每一段代码,重复直到你理解为止。

【讨论】:

  • checkIfHundredOrNot 应该返回 bool,而不是 int
  • 当然可以,但只是尝试使用一种数据类型使其非常简单。 int
【解决方案2】:

所以我自己是个菜鸟,但我会试一试。 我建议看看我的解决方案,并尝试以“你”的方式做你的,因为有更多的途径来获得正确的答案。 如果你真的很明确只有 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;
}

}

该函数基本上需要 4 个整数,并根据 -100 检查每个整数。如果结果是 -100,则计数器增加 1。 之后我们简单地检查计数器是否等于或大于 2,如果是,我们返回一个真值,因为它失败了(两个或更多输入为 -100)。如果不是,我们只返回一个 false。

在您的主函数中,您可以简单地初始化变量、输入它们并简单地进行函数调用,您可以将其与另一个“真实”值进行比较。如果结果是肯定的,则打印出失败消息。

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;
}

最好的问候!

【讨论】:

    猜你喜欢
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-31
    • 1970-01-01
    • 1970-01-01
    • 2018-08-03
    相关资源
    最近更新 更多