如果C中的语句与计算相结合,则麻烦

时间:2014-10-17 20:21:34

标签: c if-statement

好吧,伙计们,我有这么久的时间。目前我正在研究我的C类中的if语句(显然是编程的介绍),我似乎无法获得if else语句的语法正确。我浏览了网络,但没有找到任何相关的答案。我目前收到的错误是: | 47 |错误:预期')'在数字常量之前|

#include <stdio.h>
#include <stdlib.h>
#include <math.h>


float p(float r, float v)
{
  return (v*v)/(r);

    }

int main()
{


  float r, v, answer;                  //The user input and print for title of values
  puts("Enter Voltage:");
  scanf("%f", &r);
  puts("Enter Resistance:");
  scanf("%f", &v);
  answer = p(v, r);
   printf("Pd=%.9f\n", answer);

  return 0;


scanf("%f", answer);
if (answer >= 0.25)
{


       /* if condition is true then print the following */
       printf("WARNING: Power Dissipation should not exceed 1/4 Watt\n" );
}




else if ((answer) 0.25 < =<0.5 > )
      {

       printf("WARNING: Power Dissipation should not exceed 1/2 Watt\n" );

}

scanf("%f", &answer);
if ((answer 0.5<  & 1 >=< 1 )
       printf("WARNING: Power Dissipation should not exceed 1 Watt" );



}

如果您有空闲时间,请提供帮助。

2 个答案:

答案 0 :(得分:2)

你有很多语法错误:

((answer) 0.25 < =<0.5 >)

无效C.这可能是您的错误消息来自的地方。但是后来你也有了

((answer 0.5<  & 1 >=< 1 )

这也是无效的C,而& AND运算符,&&是。这些与if语法无关,在您找到它们的任何地方都会出现无效的表达。

如果你详细说明你试图通过这些陈述完成的事情,这可能会有所帮助。但是,一般来说,在开始担心if语句之前,您应该重新审核基本的C boolean expression syntax

一旦你完成了这一点,C中if语句的一般形式是:

if(int){statements;}

int如果false被视为0true则为(),如果它是其他任何内容(C缺少本机布尔类型)。放在{}中的任何表达式都必须求值为整数或隐式转换为1。仅当表达式为true时,才会评估{{1}}之间的语句。

答案 1 :(得分:1)

这个条件相当简单:

if (answer >= 0.25)

然而......这两个......

else if ((answer) 0.25 < =<0.5 > )
if ((answer 0.5<  & 1 >=< 1 )

在这些情况下,你究竟想要测试什么?

我将(根据后面的印刷声明)假设您正在检查功率是否超过半瓦或全功率,在这种情况下,他们是类似于第一种情况:

if ( answer >= 0.5 ) 
if ( answer >= 1.0 )

sp你的代码将被构造为

if ( answer >= 0.25 )
  printf( "Warning: power dissipation should not exceed 1/4 watt\n" );
else if ( answer >= 0.5 )
  printf( "Warning: power dissipation should not exceed 1/2 watt\n" );
else if ( answer >= 1.0 )
  printf( "Warning: power dissipation should not exceed 1 watt\n" );

...除

如果answer大于或等于1.0,那么它也大于或等于0.5和0.25;当你可能希望打印超过1瓦的警告时,将采取第一个分支,打印超过四分之一瓦的警告。您可能希望颠倒测试的顺序,如下所示:

if ( answer >= 1.0 )
  printf( "Warning: power dissipation should not exceed 1 watt\n" );
else if ( answer >= 0.5 )
  printf( "Warning: power dissipation should not exceed 1/2 watt\n" );
else if ( answer >= 0.25 )
  printf( "Warning: power dissipation should not exceed 1/4 watt\n" );
else
  printf( "power dissipation does not exceed 1/4 watt\n" );

因此,如果answer类似于0.75,那么您将收到超过半瓦的警告;如果它是0.35,你会收到超过四分之一瓦的警告等。