在数组中输入10个整数(不超过百位,数组中应存在相同大小的数),打印出该数组中的众数与极值 c语言
时间: 2024-10-05 15:01:09 浏览: 42
在C语言中,你可以使用嵌套循环、计数器以及数组遍历来找出数组中的众数(出现次数最多的数)和极值(最大值和最小值)。以下是实现这个功能的一个示例:
```c
#include <stdio.h>
#define MAX_SIZE 10
// 函数声明
int findMax(int arr[], int n);
int findMin(int arr[], int n);
int findMode(int arr[], int n);
int main() {
int arr[MAX_SIZE];
int input;
int i = 0;
printf("请输入10个整数(不超过百位):\n");
// 输入数组元素
while (i < MAX_SIZE) {
scanf("%d", &input);
if (input > -1 && input <= 100) {
arr[i] = input;
i++;
} else {
printf("输入错误,已忽略。\n");
}
}
// 打印极值和众数
int max_val = findMax(arr, MAX_SIZE);
int min_val = findMin(arr, MAX_SIZE);
int mode = findMode(arr, MAX_SIZE);
printf("数组中的最大值: %d\n", max_val);
printf("数组中的最小值: %d\n", min_val);
printf("数组的众数: %d\n", mode);
return 0;
}
// 函数定义:查找最大值
int findMax(int arr[], int n) {
int max = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] > max)
max = arr[i];
}
return max;
}
// 函数定义:查找最小值
int findMin(int arr[], int n) {
int min = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] < min)
min = arr[i];
}
return min;
}
// 函数定义:查找众数(这里假设只有一个众数)
int findMode(int arr[], int n) {
int count[MAX_SIZE] = {0};
int max_count = 0;
int mode = arr[0];
for (int i = 0; i < n; i++) {
count[arr[i]]++;
if (count[arr[i]] > max_count) {
max_count = count[arr[i]];
mode = arr[i];
}
}
// 遍历数组找到第一个出现次数等于max_count的数,即为众数
for (int i = 0; i < n; i++) {
if (count[arr[i]] == max_count && arr[i] != mode) {
return arr[i];
}
}
return mode; // 如果只有一个众数,返回此时的mode
}
```
阅读全文