自学内容网 自学内容网

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

以下是一个使用C语言编写的程序,可以找出1到1000之间出现次数最高的数字,时间复杂度不超过O(n)。

#include <stdio.h>

int main() {
    int occurrences[1001] = {0};
    int max_occurrences = 0;
    int max_number = 0;

    // 输入一组数字,以-1作为结束标志
    int number;
    printf("请输入一组数字,以-1作为结束标志:\n");
    while (1) {
        scanf("%d", &number);
        if (number == -1) {
            break;
        }

        // 记录数字出现的次数
        occurrences[number]++;
        
        // 更新最大出现次数和对应的数字
        if (occurrences[number] > max_occurrences) {
            max_occurrences = occurrences[number];
            max_number = number;
        }
    }

    printf("出现次数最多的数字是 %d,共出现了 %d 次。\n", max_number, max_occurrences);

    return 0;
}

该程序首先创建了一个长度为1001的数组occurrences,用于记录数字的出现次数。然后,程序要求用户输入一组数字,以-1作为结束标志。在每次输入一个数字后,程序会将该数字对应的数组元素加1,并与当前的最大出现次数进行比较,如果大于最大出现次数,则更新最大出现次数和对应的数字。当用户输入-1时,程序退出循环,并输出出现次数最多的数字和其出现次数。


原文地址:https://blog.csdn.net/2301_77487444/article/details/142440321

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!