2016-07-12 3 views
3

구문에 다소 문제가 있습니다. 아래 프로그램의 목적은 20 개의 난수 배열을 인쇄하고 배열의 최대 값을 찾은 다음 배열과 최대 값을 인쇄하는 것입니다. 나는 초기화하고 문제없이 배열을 만드는 섹션을 가지고 있지만, 내 문제는 find_max 함수입니다. main 함수에서 find_max 함수를 호출하여 결과를 출력 할 수있는 구문을 작성하려고합니다. 누구든지 내 구문을 고치는 데 도움을 줄 수 있다면 정말 고맙겠습니다.배열을 매개 변수로 사용하는 조정 함수

#include <cstdlib> 
#include <iostream> 
using 
namespace std; 

void 
init_array(int array[], int size, int range) 
{ 
    for (int index = 0; index < size; index++) 
     array[index] = rand() % range; 
} 

void print_array(int array[], int size) 
{ 
    for (int index = 0; index < size; index++) 
     cout << array[index] << " "; 
    cout << endl; 
} 

int find_max (int array[], int size) 
{ 
    int max = array[0]; 
    for (int index = 0; index < size; index++) 
    { 
     if (array[index] > max) 
     max = array[index]; 
    } 
    return max; 
} 


int main() 
{ 
    // Declare array of integers 
    const int size = 20; 
    int array[size] = {0}; 
    int max = find_max(array,size); 


    // Initialize and print array 
    init_array(array, size, 100); 
    print_array(array, size); 
    cout << "The max is:" << max << endl; 



    return 0 ; 
} 

답변

1

배열을 초기화하기 전에 최대 을 찾으십시오. 그것은 당신이 원하는 것이 아닙니다. 다음은 작동합니다.

const int DATA_SIZE = 20; 
    int data[DATA_SIZE] = {0}; 

    // Initialize and print array 
    init_array(data, DATA_SIZE, 100); 
    print_array(data, DATA_SIZE); 

    // Find maximum value 
    int max = find_max(data, DATA_SIZE); 

    cout << "max = " << max << endl; 

    return 0; 
+0

그랬어! 도와 주셔서 감사합니다! – Lumberjacked216

2

find_max 귀하의 전화는 선언 된 변수를 사용할 필요가 있고 당신이 호출 한 후 init_array. 그렇지 않으면 배열이 비어 있습니다.

find_max에 대한 호출은 다음과 같아야합니다

int max = find_max(data, DATA_SIZE); 
+0

이러한 변경 내용을 적용하면 기능이 작동하지 않습니다. find_max 함수에서 선언 된 변수를 사용할 필요가 없습니다. 나는 당신이 제안한 변화를 만들었지 만 지금은 프로그램이 작동하지만, 지금은 기능이 작동하지 않습니다. max를 0으로 출력합니다. – Lumberjacked216

+0

코드가 어떻게 변경되는지 알지 못하지만, 주 시작 부분에 rand를 시드하려고 시도해보십시오.'srand (time (NULL));'. – Mars

+0

@ Lumberjacked216 : 방금 max를 인쇄하기 위해 작성한 코드와 아직 표시하지 않은 코드에 대해 묻습니다. 우리는 텔레 패스가 아닙니다. 우리는 그 코드를 볼 수 없습니다. –

0

음 배열이 방법을 선언 할 때 : 그것에

int data[DATA_SIZE] = {0}; 

그래서 모든 20 개 요소가 0 인. 주요 기능은 다음과 같아야합니다

int main() 
{ 
    // Declare array of integers 
    const int DATA_SIZE = 20; 
    int data[DATA_SIZE] = {0}; 

    // Initialize and print array 
    init_array(data, DATA_SIZE, 100); 
    cout<< find_max(data, DATA_SIZE)<< endl; 
    print_array(data, DATA_SIZE); 

    return 0 ; 
} 

당신이 init_array 호출하여 처음 20 개 요소를 임의의 값을 제공 한 다음 그들의 최대를 찾아보십시오.

0

배열의 시작 주소와 배열의 크기를 함수에 제공 할 수 있습니다. 포인터를 사용하여 배열을 탐색 할 수 있습니다. :)

관련 문제