请教一个问题,谢谢各位 裤衩,猩猩~

micty 2004-08-12 09:54:18
#include<stdio.h>
void main()
{
int x,max;
printf("input numbers,last one is 0: ");
scanf("%d",&x);
max=x;
for(;x!=0;)
{
scanf("%d",&x);
if(max < x)
max=x;
}
printf("max=%d\n",max);
}
能帮我分析一下结构吗,for 那里那样些也行吗~?
...全文
79 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
micty 2004-08-13
  • 打赏
  • 举报
回复
o ,等同于
#include<stdio.h>
void main()
{
int x,max;
printf("input numbers,last one is 0: ");
scanf("%d",&x);
max=x;
while (x!=0)
{
scanf("%d",&x);
if(max < x)
max=x;
}
printf("max=%d\n",max);
}

antijpn 2004-08-12
  • 打赏
  • 举报
回复
给分越多,回答越快,这是肯定的~
micty 2004-08-12
  • 打赏
  • 举报
回复
各位谢谢了,我的问题不到30分钟就解决了,太谢谢了。真希望这种效率继续留在CSDN
  • 打赏
  • 举报
回复
C语言的for 循环特别灵活,功能也特别强。
for语句的一般形式是:
for(initialization;condition;increment) statement;
for循环允许多种变形。
for循环的一个特别是,循环定义的某些部分可以省略。控制循环的表达式都是可选的,可以根本不存在。
举2例:
for(x=0;x!=123;) 和 for(;x<10;) 都是合法的。
有无限循环:for(;;)也是合法的。
for(;*str == ' ';str++);也是合法的。

所以你的程序中的for循环的写法没问题。
antijpn 2004-08-12
  • 打赏
  • 举报
回复
一般情况下
for(;;);
这个东西良好的习惯是写成
for(;;)
NULL;
编译器会把NULL优化掉,但是给其他人看的时候别人就知道这是一个空循环,直接写分号无意中就会漏看


antijpn 2004-08-12
  • 打赏
  • 举报
回复
怎么可能不行?for语句里面任意的一个部分都可以省略的

这个就是一直循环,直到输入0为止,取出里面最大的放到max里面,最后输出这个最大值
RookieStar 2004-08-12
  • 打赏
  • 举报
回复
for(;;);
// 呵呵,笔误
RookieStar 2004-08-12
  • 打赏
  • 举报
回复
语法正确,具体应用看自己了。

第一个;前是初始化,不做也罢,反正就运行一次。
第二个;是循环条件,不写的话,默认无条件循环。
第三个;是用来增加遍历的,不写的话,就说明需要你在循环体内手动改变了,你的例子通过scanf手动改变。

呵呵,还有一个有名的for写法:
for(;;;);
你可以试试,叫做forever
falcon1210 2004-08-12
  • 打赏
  • 举报
回复
for( ; ; )这样写都行。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧