用c语言编写:输入一组数字,输出出现次数最多的数字,并输出这个数字出现的次数
时间: 2023-02-16 09:30:33 浏览: 436
请在代码中指定数字的个数。
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, i, j, max, max_num, count;
printf("请输入数字个数:");
scanf("%d", &n);
int a[n];
printf("请输入数字:\n");
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
max = 0;
for (i = 0; i < n; i++) {
count = 0;
for (j = 0; j < n; j++) {
if (a[i] == a[j]) {
count++;
}
}
if (count > max) {
max = count;
max_num = a[i];
}
}
printf("出现次数最多的数字是:%d\n", max_num);
printf("这个数字出现的次数是:%d\n", max);
return 0;
}
```
相关问题
用C语言编写程序,对于用户输入的任意一组数字,输出其中出现次数最多的数字,并显示其出现的次数
在C语言中,要编写一个程序来找出用户输入的一组数字中出现次数最多的数字并计算其出现次数,可以采用哈希表(如数组或结构体)来存储每个数字及其计数。以下是一个简单的步骤概述:
1. 定义一个结构体或关联数组,用于存储数字和它们的计数。
2. 首先读取用户的输入,直到遇到非数字字符为止。
3. 对于每次读取到的数字,检查它是否已经在结构体中。如果存在,增加计数;如果不存在,将其添加到结构体并设置计数为1。
4. 使用循环遍历结构体,查找计数最大的元素。
5. 输出找到的数字和它的出现次数。
下面是一个示例的C代码片段:
```c
#include <stdio.h>
// 结构体用于存储数字及其计数
typedef struct {
int number;
int count;
} NumberCount;
// 函数来找出最大计数的数字
NumberCount findMax(int input[], int size) {
NumberCount max_count = {0, 0};
for (int i = 0; i < size; ++i) {
if (max_count.count < input[i].count) {
max_count.number = input[i].number;
max_count.count = input[i].count;
}
}
return max_count;
}
int main() {
int n;
printf("请输入数字的数量:");
scanf("%d", &n);
// 初始化计数数组
NumberCount numbers[n];
int num, index = 0;
while (scanf("%d", &num) == 1 && index < n) {
numbers[index] = (NumberCount){num, 1};
++index;
}
// 更新计数
for (int i = 0; i < n - 1; ++i) {
for (int j = i + 1; j < n; ++j) {
if (numbers[i].number == numbers[j].number) {
numbers[j].count++;
}
}
}
// 找出最大计数的数字并输出结果
NumberCount result = findMax(numbers, n);
printf("出现次数最多的数字是 %d,出现了 %d 次。\n", result.number, result.count);
return 0;
}
```
C语言现在给你一串数字, 请找出其中的幸运数字(出现次数最多的那个数字,若有多个数字的出现次数都是最多,则为最大的那个数字)。 输入格式: 输入一串数字(长度不超过100)。 输出格式: 输出幸运数字。 输入样例: 320243315670920 输出样例: 3
要解决这个问题,你可以采用以下步骤编写一个简单的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;
}
```
阅读全文