| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2810 人关注过本帖
标题:请教大家一个for循环的问题
只看楼主 加入收藏
kailun945
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2017-6-2
结帖率:75%
收藏
 问题点数:0 回复次数:10 
请教大家一个for循环的问题
程序如下
void fun ( char(*t)[M],int*a,int*c)
{
    int i,j=0;
    *a=0;
    *c=0;
    for(i=0;i<M;i++)
        for(j=0;j<M;j++)
    {
    if(t[i][j]=='A')
        (*a)++;
    if(t[i][j]=='C')
        (*b)++;
    }
}
但是我看答案如下:
void fun ( char(*t)[M],int*a,int*c)
{
    int i,j=0;
    *a=0;
    *c=0;
    for(i=0;i<M;i++)
    {   
        for(j=0;j<M;j++)
        {
        if(t[i][j]=='A')
        (*a)++;
        if(t[i][j]=='C')
        (*b)++;
        }
    }
}
for第一个循环,多了一对{},请问大家这是为什么啊?
搜索更多相关主题的帖子: for 循环 fun int i++ 
2017-08-23 21:57
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
在你的代码中,你说的那对花括号本来就可以不写。写和不写没有任何区别。


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-08-23 22:08
虾米小小小
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:30
专家分:135
注 册:2017-7-22
收藏
得分:0 
不加{}那你第一个for循环就执行一次啊......
2017-08-23 22:11
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
   for(i=0;i<M;i++)
        for(j=0;j<M;j++)
    if(t[i][j]=='A')
        (*a)++;
    else if(t[i][j]=='C')
        (*b)++;

这样或许可以减少一次判断吧~这两个条件本来就是独立的~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-08-23 23:40
※C小新
Rank: 2
等 级:论坛游民
帖 子:8
专家分:20
注 册:2017-8-24
收藏
得分:0 
第一个for不加{}的话只会进行下面的一次运算,然而你下面也是一次for运算,所以加不加都是一个样
2017-08-24 10:59
mk_zhou
Rank: 2
来 自:历代兵家必争之地
等 级:论坛游民
威 望:1
帖 子:78
专家分:83
注 册:2015-6-30
收藏
得分:0 
程序代码:
    for(i=0;i<M;i++)
     {   
         for(j=0;j<M;j++)
         {
         if(t[i][j]=='A')
         (*a)++;
         if(t[i][j]=='C')
         (*b)++;
         }
     }

等价于
程序代码:

 for(i=0;i<M;i++)
     for(j=0;j<M;j++)
     {
     if(t[i][j]=='A')
         (*a)++;
     if(t[i][j]=='C')
         (*b)++;
     }

第二个for循环执行完后会继续执行第一个for循环。
没错,就是这样的。我为自己带盐。

仰望星空,看看有没有馅饼落下
2017-08-24 13:33
kailun945
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2017-6-2
收藏
得分:0 
回复 2楼 renkejun1942
哦哦,原来是这样!我就是看书上的答案跟我不一样,但是我仿真都是可以的
2017-09-05 16:54
yu965634383
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:119
专家分:195
注 册:2017-9-1
收藏
得分:0 
加不加花括号都一样的,不过我觉得还是要习惯性地加上括号,这样的话就方便阅读.现在代码少没什么感觉,代码多之后就会发现,有个括号跟没有括号读起来感觉是不一样的

菜鸟一枚,求各位大神多多关照。
2017-09-06 21:00
yehuabao
Rank: 2
等 级:论坛游民
帖 子:45
专家分:87
注 册:2017-8-3
收藏
得分:0 
路过,学习。
2017-09-06 21:40
zghnxzdcx
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:550
专家分:1176
注 册:2010-4-6
收藏
得分:0 
有时候,符号是给人看的,便于修改程序时理清结构

你永远不可能战胜一个纯傻子,因为他会把你的智商拉到和他同一个水平,然后用他的丰富经验打败你。
2017-09-06 23:13
快速回复:请教大家一个for循环的问题
数据加载中...
 
   



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

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