帮我用c写一个代码,要求输出数组中出现次数超过一半的数字,输入时,整个数组用[]括起来,单个数字之间用空格隔开,
时间: 2023-10-19 22:07:20 浏览: 78
以下是一个简单的 C 代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n = 0, i, j, count = 1, max_count = 0, max_num = 0;
int *a;
// 读取数组
printf("请输入数组:");
scanf("[%d", &a);
while (getchar() == ' ') {
scanf("%d", &a[++n]);
}
scanf("]");
// 寻找出现次数超过一半的数字
for (i = 0; i <= n; i++) {
for (j = i + 1; j <= n; j++) {
if (a[i] == a[j]) {
count++;
}
}
if (count > max_count) {
max_count = count;
max_num = a[i];
}
count = 1;
}
// 输出结果
if (max_count > n / 2) {
printf("出现次数超过一半的数字是 %d\n", max_num);
} else {
printf("不存在出现次数超过一半的数字\n");
}
return 0;
}
```
该程序首先读取一个整数数组,然后使用两个嵌套循环来计算每个数字在数组中出现的次数。如果一个数字的出现次数超过了数组长度的一半,那么它就是我们要找的数字。最后,程序输出这个数字或者提示不存在这样的数字。
阅读全文