编写程序,输入一串数,要求一个一个输入数,当输入0或者负数时,程序必须显示输入的最大非负数
#include<stdio.h>intmain(void){floatnum,max;num=1;/*就是这一行,没有这一行,vc会说变量没有初始化然后就不能运行,但是...
#include<stdio.h>
int main(void)
{
float num, max;
num = 1; /*就是这一行,没有这一行,vc会说变量没有初始化然后就不能运行,但是有了这一行那么也就是最小的最大数字一定是1也就是输入0.1最大的数字还是1怎么解决*/
max = 0;
while(num > 0)
{
printf("Enter a number:");
scanf("%f", &num);
if(num > max)
{
max = num;
}
}
printf("The largest number entered was %f", max);
return 0;
} 展开
int main(void)
{
float num, max;
num = 1; /*就是这一行,没有这一行,vc会说变量没有初始化然后就不能运行,但是有了这一行那么也就是最小的最大数字一定是1也就是输入0.1最大的数字还是1怎么解决*/
max = 0;
while(num > 0)
{
printf("Enter a number:");
scanf("%f", &num);
if(num > max)
{
max = num;
}
}
printf("The largest number entered was %f", max);
return 0;
} 展开
2个回答
推荐于2016-09-18 · 知道合伙人软件行家
关注
展开全部
“也就是输入0.1最大的数字还是1”,0.1 当然要小于1了。
示例代码如下:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
float max = 0, input = 0;
printf("请输入数值, 如果输入0或负数则退出程序:\n\n");
while(1) {
if(scanf("%f",&input) == 1) {
if(input <= 0) {
break;
} else
{
if(max<input)
max=input;
}
} else {
printf("无效的输入,跳过返回...\n");
}
}
printf("输入的最大数是: %f", max);
return 0;
}
运行结果图:
追问
while(1)是什么意思,不是括号里面应该是一个条件吗?就比如a>1这种,还有break不是循环才有的吗?这里是干嘛用的,#include 这个是干嘛用的。。。。。。。。。。。。新手问题比较多,感谢
追答
while(1)是什么意思,不是括号里面应该是一个条件吗?
条件的最终结果是取得一个逻辑值:真或假,再据此执行代码或终止。1 在c语言里代表真值, while(1)其实就是一直循环的意思。
break不是循环才有的吗?这里是干嘛用的,
上面提到了 while(1) 是一直循环,这样的话,就很容易形成“死循环”,break 就是配合 while(1) 常用的终止“死循环”的代码。
通常这种配套是常见的,因为在某些场合,由于事先不知道循环什么时候、什么条件(可能有多个条件存在,但不知道实际运行过程会是哪个条件被触发)被终止,所以先来一个一直循环,再在循环体里写终止代码。
3. #include <stdlib.h>
stdlib 头文件即standard library标准库头文件。stdlib 头文件里包含了C、C++语言的最常用的系统函数。在本例代码中这个可用可不用。
展开全部
#include <stdio.h>
int main(void)
{
float n, i = 0;
for (;;){
printf("Enter a number (enter 0 to stop):");
scanf("%f", &n);
if (n > 0){
i = n;
}
else if(n <= 0)
break;
}
printf("The largest number entered was %.3f\n", i);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询