晚起鸟儿 发表于 2015-6-18 19:02:04

请教三种条件为何不能互换位置

仰望天上的光 发表于 2015-6-19 13:54:25

你这是语法错误,if后面要跟(),但你没跟,所以语法错。

~风介~ 发表于 2015-6-18 20:05:01

贴代码?
理论上, 第一个if&&第二个if可以互换的——如果func1()和func2()没有相互调用的话!

晚起鸟儿 发表于 2015-6-19 07:16:42

~风介~ 发表于 2015-6-18 20:05
贴代码?
理论上, 第一个if&&第二个if可以互换的——如果func1()和func2()没有相互调用的话!

ryxcaixia 发表于 2015-6-19 09:12:54

亲 你的第二种
if没有对应的判断条件

晚起鸟儿 发表于 2015-6-19 20:01:53

本帖最后由 晚起鸟儿 于 2015-6-19 20:11 编辑

if (scanf(str,"%lf",&g)) {
    func1();
}

else if ( str == 'J' ) {
    func2();
}

else ( str == 'C' ) {
    func3();
}



改成这样第三个还报错,麻烦大神再解答下(光版主今天分用完了,明天再补上^^)

仰望天上的光 发表于 2015-6-19 21:20:01

能解释一下scanf(str, "%lf", &g);是什么意思吗?我没看懂
还有源程序中的scanf( "%s", &str);是怎么回事?应该是scanf( "%s", str);吧?

晚起鸟儿 发表于 2015-6-19 22:59:18

本帖最后由 晚起鸟儿 于 2015-6-19 23:08 编辑

仰望天上的光 发表于 2015-6-19 21:20
能解释一下scanf(str, "%lf", &g);是什么意思吗?我没看懂
还有源程序中的scanf( "%s", &str);是怎么回 ...

这个是一位鱼友帮我写的(后面内容我修改了下)

我想他的意思是
scanf( "%s", &str);            //输入的字符串指针str
scanf(str, "%lf", &g);        //将输入的双精度浮点数指针g


后面不是有
ff=f-(g+1)*2;
o=g+1;                么,这个输入的数据要参与后面计算的哦
我不懂语法瞎猜的{:5_97:}

仰望天上的光 发表于 2015-6-20 09:31:51

晚起鸟儿 发表于 2015-6-19 22:59
这个是一位鱼友帮我写的(后面内容我修改了下)

我想他的意思是


...我是想表达...
scanf(str, "%lf", &g);和scanf( "%s", &str);
都写错了。。。

晚起鸟儿 发表于 2015-6-20 09:42:03

仰望天上的光 发表于 2015-6-20 09:31
...我是想表达...
scanf(str, "%lf", &g);和scanf( "%s", &str);
都写错了。。。

光版主帮忙改下可以么

仰望天上的光 发表于 2015-6-20 21:13:03

晚起鸟儿 发表于 2015-6-20 09:42
光版主帮忙改下可以么

不知道题目,也不知道完整的代码。。。没法改

晚起鸟儿 发表于 2015-6-20 21:26:39

仰望天上的光 发表于 2015-6-20 21:13
不知道题目,也不知道完整的代码。。。没法改



版主辛苦了,端午节快乐{:5_91:}

仰望天上的光 发表于 2015-6-20 22:32:22

晚起鸟儿 发表于 2015-6-20 21:26
版主辛苦了,端午节快乐

在你的另一个帖子里改了

疯狂战圣 发表于 2015-6-20 23:34:45

本帖最后由 疯狂战圣 于 2015-6-21 00:58 编辑

真心不明白,你连这代码都不懂,你要改来干嘛?正确的来说这不是三个条件,这是两个条件!!!最后一个ELSE只是一个缺省做法,只有执行并没有判断,所以算不上是条件.你为什么要把它放前面去呢?这样一改造成逻辑错误,前面那两个条件是可以换的,这地球人都知道.如果你非要改最后那个,地球人也拦不住你!但你语法上错误得改过来.有两处,前个IF没加条件.后来你改了,但最后那个ELSE没IF,而你加了条件!!!!!!:mad:

疯狂战圣 发表于 2015-6-21 00:00:03

本帖最后由 疯狂战圣 于 2015-6-21 00:45 编辑

还有你给的<三种条件>源码最后那个用的是sscanf(str,"%lf",&g);而你图中改成了scanf(str,"%lf",&g)这种用法我就有点不明白了,还有个源程序中的scanf("%s",str);改成了scanf("%s",&str);,str是个指针,你用后面那种取地址的方法显然是不对的,

疯狂战圣 发表于 2015-6-21 00:00:56

本帖最后由 疯狂战圣 于 2015-6-21 00:46 编辑

网络卡多回了个,又不能删楼,

晚起鸟儿 发表于 2015-6-21 09:12:39

疯狂战圣 发表于 2015-6-20 23:34
真心不明白,你连这代码都不懂,你要改来干嘛?正确的来说这不是三个条件,这是两个条件!!!最后一个ELSE只是一 ...

if (sscanf(str,"%lf",&g)){
                func1();
                }
      
                else if ( str == 'J' ) {
                func2();
      }
      
      else if ( str == 'C' ) {
                func3();
      }
       
      
      getch();
}
谢谢高手,按你的思路这样改就对了,我非要弄前面去是觉得以后如果有比较耗时的计算,把简单的弄前面,条件成立后面复杂的就不用算,这样省时间呀{:5_91:}
页: [1]
查看完整版本: 请教三种条件为何不能互换位置