一组数据中1到9中间的数出现的次数

#include<stdio.h>
#define N 10
int main()
{
    int x;
    int a[N]={0};
    int i;
    printf("请输入数值 :");
    scanf("%d",&x);
    while(x!=-1){
        if(x>=0&&x<=9){
            a[x]++;
        }
        scanf("%d",&x);
    }
    for(i=0;i<N;i++){
    printf("%d:%d\n",i,a[i]);
    }
    return 0;
}

这里写图片描述

知识点
数组的运用

心得体会
感觉很难呢,不怎么会用

在C语言中,计算一组数据的平均、中位和众通常需要借助一些额外的数据结构和算法。 1. **平均 (Average)**: 计算平均最简单的方法是遍历组,将所有元素相加然后除以元素个。例如: ```c double sum = 0; int n = sizeof(data) / sizeof(data[0]); for (int i = 0; i < n; i++) { sum += data[i]; } double average = sum / n; ``` 2. **中位 (Median)**: 中位处理稍微复杂些,特别是如果组长度为奇还是偶的情况。可以先对组排序,然后根据组大小选择中间的那个值(奇)或中间两个值的平均(偶)。C标准库并没有内置函,你可以自行编写冒泡排序或快速排序等算法。 3. **众 (Mode)**: 找出组中出现次数最多的元素就是众。一种简单的方法是创建一个计组,遍历原始数据,每遇到一个新值就在计组对应位置加一。最后找出计最高的元素即为众。由于C语言本身不提供这样的功能,你可能需要自定义一个辅助函。 注意,对于大数据集,以上操作可能会效率较低,尤其是在计算众时。在这种情况下,可能需要考虑使用更高效的数据结构,如哈希表。 **相关问题--:** 1. C语言有没有现成的库可以直接计算这些统计量? 2. 对于大型数据,如何优化寻找众的过程? 3. 如果数据存储在一个文件中,应该怎样读取并计算这些统计数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值