IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> C语言解决落区间统计个数含源码测试 -> 正文阅读

[数据结构与算法]C语言解决落区间统计个数含源码测试

问题再现

假定输入10个整数型数组a[n]中各元素值均在[0,200]区间内,编写一个解法,分别统计落在[0,20),[20,50),[50,80)[80,130),[130,200]各区间内的元素数.

输入输出&代码结果

在这里插入图片描述

解法精要

一开始我没在意,觉得这个题目要除以10,结果看完题解才发现,只需要将上限输入倒数组里,用数组与输入样本数据进行比较即可。设置一个存放统计结果的数组int c[5],预先把各元素初始化为0,然后通过一趟扫描,按照数据元素的值,它落在哪个区间,相应统计单元加1,

完整源码

#include<stdio.h>
#define maxSize 10
/*
 *a[] 是输入数据数组
 * n 是a[]数组的长度
 * d[] 是落区域的上限
 * c[] 存放的结果数组
 * */
void Count(int a[],int n,int d[],int c[]) {
    int i,j;
    for(i=0;i<5;i++) {
        c[i] = 0;
    }//初始化结果数组c,赋值为0
    for(i=0;i<n;i++) {
        for(j=0;j<5;j++) {  //查找a[i]的值落在的区间
            if(a[i] < d[j])
                break;
        }
        c[j]++;  //使统计相应区间的元素加1
    }
}

int main() {
    int A[maxSize];
    printf("请输入10个数字(大于0且小于或等于201的数)进行统计范围:\n");
    for(int i= 0;i<maxSize;i++){
        scanf("%d",&A[i]);
    }
    //A[]数据样本
    int i,n = maxSize;
    int x,y;
    int B[5]; //结果数组
    int d[5] ={20,50,80,130,201};//用来保存各统计区间的上限
    Count(A,n,d,B);
    x = 0;
    for(i=0;i<5;i++) {
        y = d[i];
        printf("落在区间[%d,%d]的数有%d个\n",x,y,B[i]);
        x = y;
    }
    return 0;
}

源码跑路

假设输入数据有五个,分别是 25 35 45 55 65,现在主函数调用count参数如下:

  • A[]:25 35 45 55 65
  • n = 5
  • d 20 50 80 130 201
  • B 结果数组,不予考虑

count函数首先将c数组进行赋值0,然后进入i和j循环.i<5 j<5

  • i=0 25<20不成立 25<50成立所以c[1]+1
  • i=1 35<20不成立 35<50成立 所以c[1]+1
  • i=2 45<20 不成立 45<50成立 所以c[1]+1
  • i=3 55<20 不成立 55<50不成立 55<80成立 c[2]+1
  • i=4 65<20 不成立 65<50不成立 ,65<80成立 c[2]+1

在这里插入图片描述

好神奇,太神奇了,喜欢这个算法!以后有机会我也用,整除思维太low了。

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-10-04 13:05:02  更:2021-10-04 13:06:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 10:03:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码