(C++)输入任意个实数(10~100个),计算平均值,升序输出所有数(包括平均值在内)的问题。
PHP中文网
PHP中文网 2017-04-17 13:15:43
0
3
790

我突然发现自己并不知道如何计算一个数组已经被赋值过的元素个数,求教。百度上也没有搜到这种,都是固定个数算平均数的题目。。。

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(3)
黄舟

如果使用Vector这样的容器,直接使用其size()方法就可以知道大小,如果是普通的数组,要么是初始化为一个正常数据里不可能出现的值,要么是在输入时增加一个计数器,计算出输入元素的数量

小葫芦
#include <iostream>
#include <algorithm>
#include <cassert>
const int MAXN = 101;
double array[MAXN];
double sum = 0;
int counter = 0;

int main() {
    for (;std::cin >> array[counter]; sum += array[counter++]) {}
    assert(counter != 0);
    array[counter++] = sum / static_cast<double>(counter);
    std::sort(array, array + counter);
    for (int i = 0;i < counter; i++) {
        std::cout << array[i] << " ";
    }
    return 0;
}

丢代码跑

巴扎黑
int cnt = 0 ;
double sum = 0 ; 
double a[];
// 未知个数主要是加一个计数器,就是输入一个数计数器cnt加一
while(cin>>n){
    a[cnt] = n;
    cnt ++ ;
    sum += cnt ;
}
// 这部分主要是排序的问题,已经转化成已知个数的数组的排序了,各种排序算法。。
sort();
output()

从人的角度看 :输入一个数,数量加一
从代码/机器角度 :数量是cnt记录,输入一个cnt++

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板