| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3014 人关注过本帖
标题:花括号的用法---求具体用法(for if前啥时该加啥时不加)
只看楼主 加入收藏
cbullet
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2008-3-13
收藏
 问题点数:0 回复次数:11 
花括号的用法---求具体用法(for if前啥时该加啥时不加)
一个问题,一般来说,{可以多加,只要后面对应的{补上去就行了;是这样吗

但是有时少加,就会造成结果错误


{int i,j,flag=0;
 int k;                          
 for(i=0;i<MAX-5;i++)
    {for(j=i+1;j<=i+5;j++)    /*如果当前数比后面的5个数都大,则给标志变量flag赋值1*/
        {if (a[i]>a[j])   
            flag=1;
         else {flag=0;break;}   /*否则给标志变量flag赋值0并退出循环*/
         if (a[i]%2==0)         /*如果该数是偶数,也给标志变量flag赋值0*/
             flag=0;
        }
      if (flag==1)             /*将满足条件的数存入数组b中,并统计满足条件的数的个数*/
          {b[cnt]=a[i];cnt++;}
     }
 for(i=0;i<cnt-1;i++)       /*利用选择法对b数组中的元素进行从小到大的排序*/
     for(j=i+1;j<cnt;j++)
         if (b[i]>b[j])
            {k=b[i];b[i]=b[j];b[j]=k;}
}
红色的这2个花括号(及对应的)拿掉,结果就不一样了,整体就错了,什么时候该加什么时候不该加?

[[it] 本帖最后由 cbullet 于 2008-3-16 18:23 编辑 [/it]]
搜索更多相关主题的帖子: 括号 用法 flag 变量 赋值 
2008-03-16 16:37
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
for(;;)和if()后面只能跟一条语句,如果必须有超过一条语句的话,那么就把这些语句用花括号包起来.

从BFS(Breadth First Study)到DFS(Depth First Study)
2008-03-16 16:46
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
正解,顶.
2008-03-16 17:05
cbullet
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2008-3-13
收藏
得分:0 
一个问题,一般来说,{可以多加,只要后面相应的}补上去就行了;是这样吗

但是有时少加,就会造成结果错误

[[it] 本帖最后由 cbullet 于 2008-3-16 18:23 编辑 [/it]]
2008-03-16 17:43
qfyzy
Rank: 2
等 级:论坛游民
威 望:1
帖 子:380
专家分:86
注 册:2008-2-17
收藏
得分:0 
{}可以用在任何是语句的地方。如果是成对的少加,结果可能不对,不成对一定错(注释里除外)

当对C的经验增加时,它会显的很好用.----Dennis M Ritche如是说
2008-03-16 18:09
Ethip
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:771
专家分:0
注 册:2008-1-18
收藏
得分:0 
回复 1# 的帖子
2#说的很简洁,也很到位!
可以从里到外,一层一层的剥啊,先就里面的,能括起来的就把它,“封装”成一条语句。再继续!
2008-03-16 19:13
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
你的代码好乱呀。我给你整理一下:

{
    int i,j,flag=0;
    int k;                          
    for(i=0;i<MAX-5;i++)
    {
        for(j=i+1;j<=i+5;j++)    /*如果当前数比后面的5个数都大,则给标志变量flag赋值1*/
        {
            if (a[i]>a[j])   
                flag=1;
            else {
                flag=0;break;
            }   /*否则给标志变量flag赋值0并退出循环*/
            if (a[i]%2==0)         /*如果该数是偶数,也给标志变量flag赋值0*/
                flag=0;
        }
        if (flag==1)             /*将满足条件的数存入数组b中,并统计满足条件的数的个数*/
        {
            b[cnt]=a[i];cnt++;
        }
    }
    for(i=0;i<cnt-1;i++)       /*利用选择法对b数组中的元素进行从小到大的排序*/
        for(j=i+1;j<cnt;j++)
            if (b[i]>b[j])
            {
                k=b[i];b[i]=b[j];b[j]=k;
            }
}

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-03-16 19:20
bianfeng
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2007-11-28
收藏
得分:0 
大括号占一行
2008-03-16 20:38
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
直接按Alt+F8就能对齐所选的代码。
要养成良好的书写习惯是至关重要的

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-03-16 20:45
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
恩..楼上兄弟说的很好..写的格式不好..出错就不好查了..很麻烦的...

学习需要安静。。海盗要重新来过。。
2008-03-16 21:50
快速回复:花括号的用法---求具体用法(for if前啥时该加啥时不加)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018193 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved