用c语言编写一个函数,统计由数字字符组成的字符串中,各数字字符出现次数的最大值。不使用string.h在主函数中定义并初始化字符串,调用函数,输出结果。要求自定义函数使用指针作为形参。例如,字符串为“110”,输出结果为2。
时间: 2024-03-07 17:47:50 浏览: 77
好的,我可以帮你写这个函数。以下是实现代码:
```c
#include <stdio.h>
void count_max(char *str, int *max) {
int count[10] = {0}; // 数字字符出现次数的计数器,下标对应数字字符
int i, max_count = 0;
// 统计各数字字符出现次数
for (i = 0; str[i] != '\0'; i++) {
if (str[i] >= '0' && str[i] <= '9') {
count[str[i] - '0']++;
}
}
// 找出出现次数最大的数字字符
for (i = 0; i < 10; i++) {
if (count[i] > max_count) {
max_count = count[i];
}
}
*max = max_count;
}
int main() {
char str[100];
int max;
printf("请输入一个由数字字符组成的字符串:");
scanf("%s", str);
count_max(str, &max);
printf("各数字字符出现次数的最大值为:%d\n", max);
return 0;
}
```
在该程序中,自定义函数 `count_max` 接受一个指向字符串的指针和一个指向整数的指针作为参数。在函数内部,它使用一个数组来计算各数字字符出现的次数,并找出出现次数最大的数字字符。最后,通过将结果存储在 `max` 所指向的整数变量中,将结果返回给主函数。主函数首先从标准输入中读取一个字符串,然后调用 `count_max` 函数来计算各数字字符出现次数的最大值,并将结果输出到标准输出中。
阅读全文