我有一个关于学校实验室任务的问题,我希望有人可以为我澄清这一点。我不是在寻找答案,只是一种方法。我一直无法完全理解书中的解释。
问题:在程序中,编写一个接受三个参数的函数:数组,数组大小和数字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;
}
}
}
答案 0 :(得分:1)
对于我的整个答案,我认为这是:
问题:在程序中,编写一个接受三个参数的函数:数组,数组大小和数字n。假设数组包含整数。该函数应显示数组中大于数字n的所有数字。
是整个作业。
void arrayFunction(int[], int, int);
可能是你唯一能写的东西。但请注意,int[]
实际上是int*
。
正如其他人指出的那样,不要为接受输入而烦恼。沿着这一行使用的东西:int numbers[] = {2,4,8,5,7,45,8,26,5,94,6,5,8};
。它将为您创建静态数组;
您有参数int n
,但您从不使用它。
您正在尝试将variable
发送到arrayFunction
函数,但我看不到此变量的定义!
使用名为 rubber duck debugging 的东西(google for it :))。它真的会对你有帮助。
如果你有更精确的问题,请问他们。
作为旁注:有更好的方法将数组发送到函数,但是你的任务会强迫你使用这个旧的,不那么好的解决方案。
你会使用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中任何变量的名称,因此当你尝试编译时不会被识别出来。)