c语言编写程序,找出出现次数最高的数字 数字范围1-1000 时间复杂度不超过O(n)

以下是一个C语言程序,使用O(n)的时间复杂度找出出现次数最高的数字:

c 复制代码
#include <stdio.h>

int main() {
    int count[1001] = {0};  // 用于记录每个数字出现的次数
    int maxNum = -1;  // 出现次数最高的数字
    int maxCount = 0;  // 最高出现次数

    // 输入数字范围
    int start = 1;
    int end = 1000;
    int num;

    // 输入数字,并更新次数统计
    while (scanf("%d", &num) == 1) {
        if (num >= start && num <= end) {
            count[num]++;
            if (count[num] > maxCount) {
                maxCount = count[num];
                maxNum = num;
            }
        }
    }

    // 输出结果
    printf("出现次数最高的数字是:%d,出现次数:%d\n", maxNum, maxCount);

    return 0;
}

该程序使用一个长度为1001的数组count来记录每个数字的出现次数。遍历输入的数字,将数字作为count数组的索引,更新对应位置的次数统计。同时,如果当前数字的出现次数超过当前最高次数,就更新最高次数和最高次数对应的数字。最后输出最高次数和对应的数字。

注意,该程序使用了scanf函数来输入数字,你可以根据具体情况自行修改输入方式和范围。

相关推荐
budingxiaomoli13 分钟前
二叉树中的深搜
数据结构
weixin1997010801618 分钟前
[特殊字符] 1688开放平台API Sign签名算法详解(Java / Python / PHP 实现)
java·python·算法
断点之下25 分钟前
数据结构从零开始④:堆——一种特殊的完全二叉树(附堆排序、TopK问题)
数据结构
WL学习笔记27 分钟前
顺序表详解
c语言·数据结构
sugar__salt28 分钟前
深入吃透前端线性数据结构:数组、栈、队列、链表核心原理与实战
前端·数据结构·链表
未若君雅裁29 分钟前
JVM 垃圾回收算法与分代回收机制
java·jvm·算法
智者知已应修善业35 分钟前
【51单片机初始化D5-D8亮,每按键按下D1到D4全亮,再按下恢复,如此循环】2024-3-26
c++·经验分享·笔记·算法·51单片机
8Qi81 小时前
LeetCode 4:寻找两个正序数组的中位数 —— 二分查找法
java·算法·leetcode·职场和发展·二分查找
8Qi81 小时前
LeetCode 32:最长有效括号 —— 栈 + 标记法 题解
java·数据结构·算法·leetcode·职场和发展··括号匹配
机器学习之心1 小时前
198种组合算法+优化CNN-LSTM+SHAP分析+新数据预测+多输出!深度学习可解释分析,强烈安利,粉丝必备
深度学习·算法·cnn-lstm·shap分析·198种组合算法