#include <iostream>
const int MAX = 5;
double * fill_array(double *, double *);
void show_array(double *, double *);
void revalue(double, double *, double *);
using namespace std;
int main() {
double properties[MAX];
double * pf = fill_array(properties, properties + MAX);
show_array(properties, pf);
if (!(pf == &properties[0])) //pf指向最后一个数据的后面一个位置
{
cout << "Enter evaluation factor: ";
double factor;
while (!(cin >> factor)) {
cin.clear();
while (cin.get() != '\n')
continue;
cout << "Bad input; Please enter a number: ";
}
revalue(factor, properties, pf);
show_array(properties, pf);
}
cout << "Done!\n";
system("pause");
return 0;
}
double * fill_array(double * begin, double * end) {
double * pt;
double temp;
int i = 0;
for (pt = begin; pt != end; pt++)
{
cout << "Enter value #" << i+1<< " :";
cin >> temp;
if (!cin) {
cin.clear();
while (cin.get() != '\n')
continue;
cout << "Bad input; input process terminated.\n";
break;
}
else if (temp < 0)
break;
*pt = temp;
i++;
}
return begin + i;
}
void show_array(double * begin, double * end) {
double * ps;
int j = 0;
for (ps = begin; ps != end; ps++,j++) {
cout << "Property #" << j + 1 << ": $";
cout << *ps << endl;
}
}
void revalue(double r,double * begin, double * end)
{
double * pv;
for (pv = begin; pv != end; pv++)
(*pv) *= r;
}
一个使用数组区间的实例
最新推荐文章于 2022-06-06 01:13:11 发布