数组函数。希望得到一点澄清

时间:2016-10-27 21:27:35

标签: c++ arrays function

我有一个关于学校实验室任务的问题,我希望有人可以为我澄清这一点。我不是在寻找答案,只是一种方法。我一直无法完全理解书中的解释。

  

问题:在程序中,编写一个接受三个参数的函数:数组,数组大小和数字n。   假设数组包含整数。该功能应该显示   数组中所有大于n的数字。

这就是我现在所拥有的:

/*
Programmer: Reilly Parker
Program Name: Lab14_LargerThanN.cpp
Date: 10/28/2016
Description: Displays values of a static array that are greater than a user inputted value.
Version: 1.0
*/

#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;

void arrayFunction(int[], int, int); // Prototype for arrayFunction. int[] = array, int = size, int = n

int main()
{  
    int n; // Initialize user inputted value "n"
    cout << "Enter Value:" << endl;
    cin >> n;

    const int size = 20; // Constant array size of 20 integers.
    int arrayNumbers[size] = {5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24}; // 20 assigned values for the array

    arrayFunction(arrayNumbers, size, n); // Call function
    return 0;
}    

/*  Description of code below:

The For statement scans each variable, if the array values are greater than the 
variable "n" inputted by the user the output is only those values greater than "n."
*/

void arrayFunction(int arrayN[], int arrayS, int number) // Function Definiton
{
    for (int i=0; i<arrayS; i++) 
    {    
        if (arrayN[i] > number)
        {

        cout << arrayN[i] << " ";
        cout << endl;

        }
    }    
}

2 个答案:

答案 0 :(得分:1)

对于我的整个答案,我认为这是:

  

问题:在程序中,编写一个接受三个参数的函数:数组,数组大小和数字n。假设数组包含整数。该函数应显示数组中大于数字n的所有数字。

是整个作业。

  1. void arrayFunction(int[], int, int);可能是你唯一能写的东西。但请注意,int[]实际上是int*

  2. 正如其他人指出的那样,不要为接受输入而烦恼。沿着这一行使用的东西:int numbers[] = {2,4,8,5,7,45,8,26,5,94,6,5,8};。它将为您创建静态数组;

  3. 您有参数int n,但您从不使用它。

  4. 您正在尝试将variable发送到arrayFunction函数,但我看不到此变量的定义!

  5. 使用名为 rubber duck debugging 的东西(google for it :))。它真的会对你有帮助。

  6. 如果你有更精确的问题,请问他们。

    作为旁注:有更好的方法将数组发送到函数,但是你的任务会强迫你使用这个旧的,不那么好的解决方案。

      

    你会使用if else声明吗?我已使用更新的代码编辑了原始帖子。

    您已更新问题,然后我更新了答案。

    首先要做的是:正确缩进代码!!!
    如果你这样做,你的代码将更清晰,更易读,并且不仅对我们而且对你来说更容易理解。

    下一步:即使在某些情况下不需要大括号,也不要省略大括号。即使是有经验的程序员也很少省略它们,所以作为初学者,你永远不应该这样做(例如你的for循环)。

    关于if-else语句的简短回答是:它取决于。
    有时我会使用if(注意:在你的情况下else是没用的)。但有时候我会使用三元运算符:condition ? value_if_true : value_if_false;甚至是lambda表达式 在这种情况下,您应该选择if,因为它会更容易,更直观。

答案 1 :(得分:0)

除了C ++方面,请考虑您需要采取的步骤来确定数字是否大于某个值。然后对阵列中的所有数字执行此操作,如果数字大于n,则打印出数字。因为你有&#39; for&#39;循环,看起来你已经知道如何进行循环并比较C ++中的数字。

此外,您在arrayFunction中看起来像是在尝试输入值?您无法在单个语句中输入整个数组的值,就像您似乎正在尝试一样(同样,&#39;值&#39;不是arrayFunction中任何变量的名称,因此当你尝试编译时不会被识别出来。)