(提前声明,以下皆为我自己做题时所记录,方便以后查看,当然也希望大家一起来观看并指出我的错误。)
#include<iostream>
using namespace std;
const int nMax = 5;
double* fill_array(double* ar1, double* ar2);
void show_array(const double* a1, double* ar2);
void revalue(double r, double* ar1, double* ar2);
int main()
{
double aProperties[nMax];
double* pArrLast = fill_array(aProperties, aProperties + nMax);
show_array(aProperties, pArrLast);
if (pArrLast - aProperties > 0)
{
cout << "Enter revaluation factor: ";
double dFactor;
while (!(cin >> dFactor))
{
cin.clear();
while (cin.get() != '\n')
continue;
cout << "Bad input;Please enter a number: ";
}
revalue(dFactor, aProperties, pArrLast);
show_array(aProperties, pArrLast);
}
cout << "Done.\n";
cin.get();
cin.get();
return 0;
}
double* fill_array(double* ar1, double* ar2)
{
double dTemp;
int i;
for (i = 0; i < ar2 - ar1;i++)
{
cout << "Enter value #" << i + 1 << ": ";
if (!(cin >> dTemp))
{
cin.clear();
while (cin.get() != '\n')
continue;
cout << "Bad input; input process terminated.\n";
break;
}
else if (dTemp < 0)
break;
*(ar1 + i) = dTemp;
}
return ar1 + i;
}
void show_array(const double* ar1, double* ar2)
{
for (int i = 0; i < ar2 - ar1; i++)
{
cout << "Property #" << i + 1 << ": $"
<< *(ar1 + i) << endl;
}
}
void revalue(double r, double* ar1, double* ar2)
{
for (int i = 0; i < ar2 - ar1; i++)
*(ar1 + i) *= r;
}