我差不多完成了我的代码;但是,一部分工作不正常。简单地说,从一个只包含数字的文件(例如出售的汽车)中读取数据。通过使用一个数组,试图获得这些数字的总数,max和最大索引的数量。我的问题是:如何从我的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”;返回42;'你会得到“hi \ n”输出,但是它会抛弃3 + 42 = 45的值并继续评估4 * 2,产生8,这就是分配给'x'的值。类似的事情发生在'返回最大值,相关;' - 有效'最大值',被抛弃并被忽略。 –