c语言 求出现次数最多的两位数
时间: 2024-10-18 08:10:41 浏览: 45
在C语言中,求出现次数最多的两位数通常会涉及到数组或字符串处理。你可以通过以下几个步骤实现:
1. **输入数据**:首先从用户那里获取一组数字作为输入,可以使用循环读取每一个字符,然后判断是否为数字,并将其存储在一个字符串中。
2. **转换成整数数组**:将字符串中的每个字符转换成对应的整数,并存入一个整数数组中。这里需要注意的是,由于是两位数,所以需要检查字符是否在0-9之间。
3. **统计计数**:遍历数组,使用一个大小为10*10的二维数组(因为有0-9共10种可能的十位,0-9共10种可能的一位),记录每个数字对出现的次数。例如,如果遇到数字65,就将二维数组[6][5]加一。
4. **找出最大值**:遍历完二维数组后,找出各元素的最大值及其位置,这两个信息就是出现次数最多的两位数及其出现次数。
5. **输出结果**:最后输出找到的出现次数最多的两位数以及它的出现次数。
以下是简单的伪代码示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
char input[100];
int numArray[100], count[10][10] = {0};
// 输入数据并转换为数组
printf("请输入数字串:");
fgets(input, sizeof(input), stdin);
for (int i = 0; i < strlen(input); i++) {
if (input[i] >= '0' && input[i] <= '9') {
numArray[i] = input[i] - '0';
}
}
// 统计计数
for (int i = 0; i < strlen(input) - 1; i++) {
count[numArray[i] / 10][numArray[i] % 10]++;
}
// 找出最大值
int maxCount = 0;
int mostFrequentNum = 0;
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
if (count[i][j] > maxCount) {
maxCount = count[i][j];
mostFrequentNum = i * 10 + j;
}
}
}
// 输出结果
printf("出现次数最多的两位数是:%d,出现了%d次。\n", mostFrequentNum, maxCount);
return 0;
}
```
阅读全文