数组使用的小心得

2021-11-20  本文已影响0人  戴文KeepLearning

很多同学在刚学习完数组以后,开始习惯用数组去处理批量数据的问题。但是容易陷入习惯性使用数组的误区。

比如,某班有 N 名学生 M 科的考试成绩,在得到所有单科成绩以后,要求我们求出这 M 科成绩的平均分。显然,初学者容易习惯性去定义一个二维数组 a[N][M],将所有分数的数据对应保存以后,再使用 for 循环去挨个进行加法处理,最后除以 N 得到平均值。

这种做法固然是没有错的,但我们在编程时候,再仔细想想,我们是否需要使用二维数组来解决这个问题呢?我们完全可以使用一个一维数组 sum[M] ,第 1 科到 第 M 科的分数总和分别用 sum[0]sum[M-1] 表示。

int sum[M];
for(int i = 0; i < N; i++){
    for(int j = 0; j < M; j++){
        int temp;
        cin >> temp;
        sum[j] += temp;      
   }
}
// 最后求平均分并输出
for(int j = 0; j < M; j++){
    cout << sum[j]/N << " ";      
}

我们要意识到,使用数组的目的是为了保存数据,为接下来的多次运算做准备。如果说,我们读取了数据,只需要使用一次,以后都不会再需要它们,那么我们完全可以在循环里使用临时变量,读取保存,处理完以后就 “抛弃” 它们。

大家可以用心思考、体会一下。

上一篇 下一篇

猜你喜欢

热点阅读