나는 거의 내 코드로 끝났습니다. 그러나 한 부분이 잘 작동하지 않습니다. 간단히 숫자 만 들어있는 파일 (예 : 판매 된 자동차)에서 읽는 것. 배열을 사용하여 그 수, 최대 수 및 최대 인덱스 수를 합한 값을 얻으려고합니다. 내 질문은 : 어떻게 내 MaxSold 함수에서 두 값을 반환 할 수 있습니까? 그것은 정확하지 않은 색인에 추가 된 최대 값만을 리턴합니다. 결과는 직원 수와 최대 수를 가리켜 야합니다.C++ 배열에서 두 값 반환
#include <iostream>
#include <fstream>
/*#include <vector>
#include <iomanip>*/
void Read(int arryList[], int size);
void Print(int arryList[], int size);
int total(int arryList[], int size);
int MaxSold(int arryList[], int size, int& number);
using namespace std;
ifstream inFile("C:\\cars.dat");
int main()
{
int cars[7];
int i;
Read(cars,7);
Print(cars,7);
cout<<"The total of sold cars is: "<<total(cars, 7)<< "\n";
cout<<"The Max "<< MaxSold(cars, 7, i);
}
void Read(int arryList[], int size){
for(int i = 0; i < 7; i++)
{
inFile >> arryList[i];
}
return;
}
void Print(int arryList[], int size){
for (int i = 0; i < 7; i++){
cout << i + 1 << "-"<< arryList[i] << "\n";
}
return ;
}
int total(int arryList[], int size){
int sum = 0;
for (int i = 0; i < size; i++){
sum +=arryList[i];
}
return sum;
}
int MaxSold(int arryList[], int size, int& number){
int Maximum= 0;
int relate=0;
for(int i=0 ; i<7 ; i++){
if (arryList[i] > Maximum){
Maximum = arryList[i];
relate = i+1;
}
}
return Maximum, relate;
}
을 설명하기 : ++ C의 콤마 연산자 다음에,이 평가 어떤 무시'x' 평가'y' 평가하고 어떤 컨텍스트를 사용하여 표현 'X, y' 평가'(X)를, Y '이 나타났다. 예를 들면 :'int x = 3 + f(), 4 * 2;'3 + f()'를 평가합니다 - 그래서'f()'가'std :: cout << "를 포함하면 hi! \ n"; return 42; "hi \ n"출력을 얻지 만, 3 + 42 = 45 값을 버리고 4 * 2를 계산하여 8을 얻습니다.이 값은'x'에 할당 된 값입니다. 'Return Maximum, relate;에 대해서 비슷한 일이 일어나고 있습니다 - 효과적으로'Maximum '은 버리고 무시됩니다. –