2017-12-27 400 views
-3

我试图解决的编程挑战是国家为:编写接受三个参数的函数:数组,则大小 阵列的,和数n。假定数组包含整数。该函数应该显示数组中所有大于数字n的数字。如何实现简单的C++函数

#include "stdafx.h" 
#include <iostream> 
#include <iomanip> 
using namespace std; 
void largerThanN(int a[], int size, int n); 
int main() 
{ 
    int size = 3, 
    n  = 1, 
    arr[3] = { 0,5,6 }; 
    largerThanN(arr, size, n); 
} 

void largerThanN(int a[], int size, int n) 
{ 
    for (int i = 0; i < size; i++) 
    { 
     if (a[i] > n) 
     { 
      cout << a[size] << " is greater than n " << endl; 
     } 
    } 
} 

这是我至今令人费解,但我不知道这是否甚至远程接近解决的挑战,也许从pro C与一些方向++开发者会助阵。

编辑:我已经找到了一些帮助,你们在评论中,谢谢你们帮助新手出来。那意义重大。

+1

'stdafx.h'是一个非标准的头。 SO不是我的家庭作业服务。阅读关于C++的[更多](http://en.cppreference.com/w/cpp),使用它的标准[容器](http://en.cppreference.com/w/cpp/container)。编译所有警告和调试信息,并使用调试器。 'largerThanN'的签名是错误的,该函数应该给出'bool'或者可能是一个'void'(然后它被命名得很糟糕) –

+1

@OP为什么你用'cin'接受用户输入?从问题描述中,int []数组(你没有在'largerThanN'中命名)应该包含所有你想测试的值 – wKavey

+2

你可能想要抓住一个[很好的C++书](https://stackoverflow.com/q /1782465分之388242)。 – Angew

回答

2

你可以不喜欢这个 -

#include <iostream> 
using namespace std; 
void largerThanN(int[], int size, int n); 

int main() 
{ 
    int size; 
    cin >> size; 
    int a[size]; 
    for(int i=0; i < size; i++) 
     cin >> a[i]; 
    int n; 
    cin >> n; 
    largerThanN(a, size, n); 
    return 0; 
} 

void largerThanN(int a[], int size, int n) 
{ 
    for(int i = 0; i < size; i++) 
    { 
     if(a[i] > n) 
      cout << a[i] << endl; 
    } 
} 
+0

我对它进行了更多的修改,并且对函数做了相同的事情,但是你在main()中做了什么确实帮助我完全理解了如何将值传递给函数。谢谢@arnab –

0
#include "stdafx.h" 
#include <iomanip> 
#include <iostream> 
using namespace std; 
double largerThanN(int[], int size, int n); 

int main() { 
    int arr_size; // array size 
    cin >> arr_size; 
    vector<int> arr(n); 
    cout << "Enter values: "; 
    for (int i=0; i<n; i++) 
     cin >> arr[i]; 
    int n; 
    cin >> n;  // the no. to search for 
    largerThanN(arr, arr_size, n); 
    return 0; } 

void largerThanN(int[], int size, int n) { 
    int index; 
    for (index = 0; index < size; index++) 
    { 
     if (values[index] > n) 
      cout << values[n] << endl; 
    } } 
+0

是否有用? – CSRP

+0

这有帮助,谢谢@ csrp –