C++函数【数组作为函数的参数】

表示C++的内容很多都不记得了 - - 需要重头再细细温习一下。
从例子着手好了。
例子全部选自《C++程序设计 思想与方法》。

【数组作为函数的参数】
一个例子,求成绩平均值:

#include <iostream>
using namespace std;

int average(int array[10]) {
    int i, sum = 0;
    for(i = 0; i < 10; ++i) {
        sum += array[i];
    }
    return sum / 10;
}

int main() {
    int i, score[10];
    cout << "请输入10个成绩:";
    for (i = 0; i < 10; i++) {
        cin >> score[i];
    }
    cout << "平均成绩是:" << average(score) << endl;
    return 0;
}

运行结果如下:

请输入10个成绩:1 2 3 4 5 6 7 8 9 10
平均成绩是:5
Program ended with exit code: 0

注意输入成绩的时候各成绩之间不能用逗号分隔,否则会出错。具体原因不明了,下次了解更深这方面内容的时候再做补充。

数组传递的本质是数组起始地址的传递。

另一个例子,整型数据逆序输出:

#include <iostream>
using namespace std;

#define MAX 10

int ReadIntegerArray(int Array[ ], int max, int flag) {
    int size = 0;

    cout << "请输入数组元素,以" << flag << "结束:";
    while(size < max) {
        cin >> Array[size];
        if(Array[size] == flag)
            break;
        else
            ++size;
    }
    return size;
}


void ReverseIntegerArray(int Array[ ], int size) {
    int i, tmp;

    for(i = 0; i < size/2; i++) {
        tmp = Array[i];
        Array[i] = Array[size-i-1];
        Array[size-i-1] = tmp;
    }
}

void PrintIntegerArray(int Array[ ], int size) {
    int i;

    if(size == 0) {
        return;
    }
    cout << "逆序是:" << endl;
    for(i = 0; i < size; ++i) {
        cout << Array[i] << '\t';
    }
    cout << endl;
}


int main() {
    int IntegerArray[MAX], flag, CurrentSize;

    cout << "请输入结束标记:";
    cin >> flag;

    CurrentSize = ReadIntegerArray(IntegerArray, MAX, flag);
    ReverseIntegerArray(IntegerArray, CurrentSize);
    PrintIntegerArray(IntegerArray, CurrentSize);
    return 0;
}

数组传递的本质是数组起始地址的传递,因此实参传递到形参后调用函数会修改实际数组的值,另外,数组的大小可以不预先定义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值