编写程序读取正整数,找出它们的最大数,然后计算该最大数出现的次数。输入以-1结束。c语言
时间: 2024-11-18 17:27:47 浏览: 29
在 C 语言中,你可以编写一个循环结构来完成这个任务。首先,你需要初始化一个变量来存储当前的最大值和计数器,然后逐个读取输入的正整数。如果新读入的数字大于当前最大值,就更新最大值并重置计数器;若等于最大值,则增加计数。当输入变为 -1 时,跳出循环并输出结果。
下面是一个简单的示例代码:
```c
#include <stdio.h>
int main() {
int num, max_num = 0, count = 0;
while (scanf("%d", &num) == 1 && num != -1) { // 使用 %d 格式化符读取整数
if (num > max_num) {
max_num = num;
count = 1; // 如果新数值更大,重置计数器
} else if (num == max_num) {
count++; // 数值相等,计数加一
}
}
printf("最大数是:%d\n", max_num);
printf("它出现了 %d 次。\n", count);
return 0;
}
```
在这个程序中,`scanf` 函数用于从用户那里获取输入,`while` 循环会一直运行直到遇到 `-1` 或者文件结束。`max_num` 和 `count` 分别表示当前找到的最大数和出现次数。
相关问题
c语言编写程序读取正整数,找出它们的最大数,然后计算该最大数出现的次数。输入以-1结束
下面是一份 C 语言代码,实现了读取正整数,找出最大数并计算出现次数的功能:
```c
#include <stdio.h>
int main() {
int n, max = 0, count = 0;
printf("请输入一系列正整数,以-1结束:\n");
while (1) {
scanf("%d", &n);
if (n == -1) break;
if (n > max) {
max = n;
count = 1;
} else if (n == max) {
count++;
}
}
printf("最大数为:%d,出现次数为:%d\n", max, count);
return 0;
}
```
该程序使用了一个 `while` 循环,不断读取用户输入的正整数,直到输入了 -1 才停止循环。在循环中,如果读取的数大于当前最大值,则更新最大值,并将出现次数重置为 1。如果读取的数等于当前最大值,则将出现次数加 1。最后输出最大数和出现次数即可。
c语言编写程序读取正整数,找出它们的最大数,然后计算该最大数出现的次数。输入以-1结束。
在C语言中,你可以通过创建一个变量存储当前的最大数,然后遍历输入的每一个正整数,如果新输入的数比当前最大数大,则更新最大数。同时,你还需要一个计数器来记录最大数出现的次数。当遇到-1停止输入时,输出结果即可。下面是一个简单的示例程序:
```c
#include <stdio.h>
#include <limits.h> // 包含INT_MAX来处理较大的数值
int main() {
int input, current_max = INT_MIN, max_count = 0; // 初始化最大值为负无穷
scanf("%d", &input);
while (input != -1 && input >= 0) {
if (input > current_max) {
current_max = input;
max_count = 1; // 如果输入的新数大于当前最大,重置计数器
} else if (input == current_max) {
max_count++; // 如果输入等于最大数,计数加一
}
scanf("%d", &input);
}
printf("最大数 %d 出现了 %d 次。\n", current_max, max_count);
return 0;
}
```
在这个程序中,`scanf`用于读取用户输入的数字,如果输入的是-1或非正数,`while`循环就会终止。
阅读全文