编写函数,实现统计和输出一个正整数中各位数字中零的个数,及各位数字中最大者C语言
时间: 2024-12-20 21:17:46 浏览: 10
在C语言中,你可以编写一个函数来实现这个功能。这里是一个简单的示例,它接受一个正整数作为输入,并返回0的数量以及最大的非零数字:
```c
#include <stdio.h>
// 函数声明
void count_zeros_and_max(int num);
int main() {
int input;
printf("请输入一个正整数: ");
scanf("%d", &input);
// 调用函数并打印结果
count_zeros_and_max(input);
return 0;
}
// 实现函数count_zeros_and_max
void count_zeros_and_max(int num) {
int zeros = 0, max_digit = 0; // 初始化计数器
while (num != 0) {
// 检查数字是否为0,如果是,则增加零的计数
if (num % 10 == 0) {
zeros++;
} else { // 如果不是0,更新最大非零值
max_digit = ((max_digit > num % 10) ? max_digit : num % 10);
}
// 右移一位去掉最低位
num /= 10;
}
printf("0的个数: %d, 最大非零数字: %d\n", zeros, max_digit);
}
```
在这个函数中,我们通过取模运算符 `%` 来检查每个数字,然后用除法 `num /= 10` 移动到下一位。最后,在主函数中调用 `count_zeros_and_max` 并显示结果。
阅读全文