2017-12-27 394 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 –