用c语言 编写程序,要求从用户输入的一串数中找出最大数,当输入0或负数时输出找到的最大非负数。
时间: 2023-08-31 07:30:40 浏览: 294
### 回答1:
以下是用 C 语言编写的程序,可以从用户输入的一串数中找出最大数,当输入 0 或负数时输出找到的最大非负数:
```c
#include <stdio.h>
int main() {
int num, max = -1;
while (1) {
printf("请输入一个数:");
scanf("%d", &num);
if (num <= 0) {
printf("最大非负数为:%d\n", max);
break;
}
if (num > max) {
max = num;
}
}
return 0;
}
```
当用户输入 0 或负数时,程序会输出找到的最大非负数。如果用户输入的数都是正数,程序会在用户输入完毕后输出最大数。
### 回答2:
您好!下面是一个用C语言编写的程序,可以从用户输入的一串数中找出最大数,并在输入为0或负数时输出最大的非负数。
```c
#include <stdio.h>
int main() {
int num, max = -1;
printf("请输入一串数(以0或负数结尾):\n");
while (1) {
scanf("%d", &num);
if (num > max) {
max = num;
}
if (num <= 0) {
break;
}
}
if (max >= 0) {
printf("最大的非负数为:%d\n", max);
} else {
printf("未找到非负数!\n");
}
return 0;
}
```
在程序中,我们使用了一个`while`循环来反复获取用户输入的数,并通过比较更新变量`max`的值为输入数中的最大值。当输入的数小于等于0时,我们跳出循环,并根据`max`的值输出结果。
希望以上信息对您有所帮助,如果您还有任何问题,请随时向我提问!
### 回答3:
以下是一个用C语言编写的程序,可以找出用户输入的一串数中的最大非负数:
```c
#include<stdio.h>
int main() {
int num, max_num = -1;
printf("请输入一串数(以0或负数结束):");
do {
scanf("%d", &num);
// 如果输入的数大于当前最大非负数,则更新最大非负数
if (num >= 0 && num > max_num) {
max_num = num;
}
} while (num > 0);
// 当输入0或负数时,输出最大非负数
printf("最大非负数是:%d\n", max_num);
return 0;
}
```
程序首先定义了两个变量:`num`用于接收用户输入的数,`max_num`用于记录当前找到的最大非负数,默认值为-1。然后通过使用`do-while`循环来不断接收用户输入的数,直到用户输入的数为0或负数为止。
在循环体内部,通过`scanf`函数接收用户输入的数,并通过判断条件来更新`max_num`变量。只有当输入的数大于等于0且大于当前最大非负数时,才将其赋值给`max_num`。
当用户输入0或负数时,循环结束,程序输出最大非负数。
注意:程序假设用户输入的数不会超过`int`类型的范围。如果可能会遇到超出范围的情况,可以考虑使用更大的数据类型,如`long long`。
阅读全文