| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 13148 人关注过本帖
标题:两个并列if语句能不能等同于if-else语句
只看楼主 加入收藏
菲儿1031
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-6-17
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:10 
两个并列if语句能不能等同于if-else语句
一、
#include
#include
int main()
{int n,m;
scanf("%d",&n);
for(m=0;n>1;m++)
{if(n%2!=0)
n=3*n+1;
if(n%2==0)
n=n/2;

}
printf("%d",m);

system("pause");
return 0;
}
二、
#include
#include
int main()
{int n,m;
scanf("%d",&n);
for(m=0;n>1;m++)
{if(n%2!=0)
n=3*n+1;
else
n=n/2;

}
printf("%d",m);

system("pause");
return 0;
}
第二个是正确的,但是感觉第一个也不错呀,为什么运行结果和第二个不一样呢?
搜索更多相关主题的帖子: include system return 
2015-07-07 10:34
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:4 
if(n%2!=0)
n=3*n+1;    //这里n的值会发生变化。
if(n%2==0)
n=n/2;

总有那身价贱的人给作业贴回复完整的代码
2015-07-07 10:47
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:4 
1,我不明白,这程试真的是完整的嘛?
2,for语句这么用真的好嘛

2015-07-07 10:59
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:4 
if(n%2!=0)
n=3*n+1;   //这里的n值奇偶性一定会发生变化,导致两if判断条件一致执行情况也一致。要么都执行要么都不执行
if(n%2==0)
n=n/2;

剑栈风樯各苦辛,别时冰雪到时春
2015-07-07 11:05
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:4 
第一个if运行完后,会接着顺序运行第二个if,会影响到最后的输出结果。
如果你想两个if只会运行其中一个的话,第二个if要改为else if,这样两者只会取其一运行。
而且你确定你这个for循环没有问题么。。。
2015-07-07 14:53
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
就你的问题简单回答来说,两个并列的if不同于if-else;
你试运行下下面的程序:
#include <stdio.h>
int main(void)
{
    int i=1,j=2;
    if(i==1)
        {
        i=j;
        printf("i=%d",i);
        }
    if(i==2)
        {
        i=1;
        printf("\ni=%d",i);
        }
     return 0;
 }
最终输出:i=2
          i=1.
第二个程序:
#include <stdio.h>
int main(void)
{
    int i=1,j=2;
    if(i==1)
        {
        i=j;
        printf("i=%d",i);
        }
    else if(i==2)
        {
        i=1;
        printf("\ni=%d",i);
        }
     return 0;
 }
最终输出:i=2.

上述2个简单的程序你对比下吧
2015-07-07 15:12
菲儿1031
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-6-17
收藏
得分:0 
回复 5楼 wanglianyi1
好像这么用for确实不对,但我不知道错在哪里。。。。
2015-07-07 15:30
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
回复 7楼 菲儿1031
循环退出的判定条件是?
你这个循环用在这里虽然不会死循环,但是感觉好奇怪,,,
你这个地方用for循环有必要么。。
for的用法你百度下看看,另外你这个程序头文件,,,

说实话,我没太看明白你这个程序要实现的目的是、、、

[ 本帖最后由 wanglianyi1 于 2015-7-7 15:54 编辑 ]
2015-07-07 15:47
rolimi
Rank: 4
等 级:业余侠客
威 望:1
帖 子:43
专家分:232
注 册:2015-6-10
收藏
得分:4 
回复 8楼 wanglianyi1
这是3n+1猜想

呆呆的逗比程序猿
2015-07-07 16:29
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
回复 9楼 rolimi
嗯,感谢学习了。我百度下这个名词,学习下
2015-07-07 16:50
快速回复:两个并列if语句能不能等同于if-else语句
数据加载中...
 
   



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

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