C++ primer函数:按值传递,修改数组,const double array[]

//第七章:函数
//函数基本知识
//函数原型
//按值传递函数参数
//设计处理数组的函数
//使用const指针参数
//设计处理文版字符串的函数

#include <iostream>
using namespace std;
const int Max = 5;
int fill_array(double ar[], int limit);
void show_array(const double ar[], int n);
void revalue(double r, double ar[], int n);

int main()
{
    double properties[Max];
    
    int size = fill_array(properties,Max);
    show_array(properties,size);
    if(size >0)
    {
        cout << "Enter revaluation factor: ";
        double factor;
        while(!(cin >> factor))
        {
            cin.clear();
            while(cin.get() != '\n')
                continue;
            cout << "Bad input: Please enter a number: ";
        }
        revalue(factor, properties,size);
        show_array(properties,size);
    }
    cout << "Done.\n";
    cin.get();
    cin.get();
    return 0;
}
//数组接受有效的非负数值,输入的有效值越多返回的有效值个数越大
int fill_array(double ar[], int limit)
{
    using namespace std;
    double temp;
    int i;
    for(i = 0; i<limit; i++)
    {
        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;
        ar[i] = temp;
    }
    return i;
}
//显示值
void show_array(const double ar[], int n)
{
    using namespace std;
    for(int i=0;i<n;i++)
    {
        cout << "property #"<<(i+1) <<": ";
        cout << ar[i] << endl;
    }
}
//改变数组的值
void revalue(double r, double ar[], int n)
{
    for(int i =0; i< n; i++)
    {
        ar[i] *=r;
    }
}
实验结果:
Enter value #1 : 1
Enter value #2 : 2
Enter value #3 : 3
Enter value #4 : 4
Enter value #5 : 5
property #1: 1
property #2: 2
property #3: 3
property #4: 4
property #5: 5
Enter revaluation factor: 2
property #1: 2
property #2: 4
property #3: 6
property #4: 8
property #5: 10
Done.

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/zjguilai/article/details/89461715