C语言现在给你一串数字, 请找出其中的幸运数字(出现次数最多的那个数字,若有多个数字的出现次数都是最多,则为最大的那个数字)。 输入格式: 输入一串数字(长度不超过100)。 输出格式: 输出幸运数字。 输入样例: 320243315670920 输出样例: 3
时间: 2024-12-25 11:27:04 浏览: 1
要解决这个问题,你可以采用以下步骤编写一个简单的C语言程序:
1. 定义一个函数`find_lucky_number`,接受一个整数数组作为参数,并记录每个数字及其出现的次数。
2. 初始化一个整型变量`max_count`用于存储最大出现次数,以及一个整数`lucky_num`用于存储当前的幸运数字。
3. 遍历输入数组,对于每个元素:
- 如果它是第一次遇到,设置其计数器为1。
- 否则,将其计数器加1。
- 比较当前计数值和`max_count`,如果大于`max_count`,更新`max_count`和`lucky_num`;如果相等但数字更大,保持`lucky_num`不变。
4. 遍历结束后,返回`lucky_num`。
以下是示例代码:
```c
#include <stdio.h>
int count_numbers(int arr[], int n) {
int counts[101] = {0}; // 初始化计数数组
for (int i = 0; i < n; i++) {
counts[arr[i]]++;
}
return counts;
}
int find_lucky_number(int arr[], int n) {
int max_count = 0;
int lucky_num = arr[0];
for (int i = 1; i <= 100; i++) {
if (counts[i] > max_count) {
max_count = counts[i];
lucky_num = i;
} else if (counts[i] == max_count && i > lucky_num) {
lucky_num = i;
}
}
return lucky_num;
}
int main() {
int input[] = {3, 2, 0, 2, 4, 3, 3, 1, 5, 6, 7, 0, 9, 2, 0};
int n = sizeof(input) / sizeof(input[0]);
int lucky_number = find_lucky_number(input, n);
printf("幸运数字: %d\n", lucky_number);
return 0;
}
```
阅读全文