我的IF程序不正确

时间:2016-11-17 17:45:06

标签: c if-statement

我遇到的问题是输出总是'-1',无论我输入什么。

我必须遵守的规则是: 如果输入数小于零,则输出-1; 如果输入数字恰好为零,则输出0; 如果输入数字大于零,则输出1。

代码如下:

#include <stdio.h>
int main ()
{
   int number;

printf("please enter a number: ");
scanf("%i", &number);

if("number > 0")
{
printf ("-1");
}
else if ("number == 0")
{
printf("0");
}
else if ("number < 0")
{
printf("1");
}
}

1 个答案:

答案 0 :(得分:0)

在这些if-else语句中

if("number > 0")
{
printf ("-1");
}
else if ("number == 0")
{
printf("0");
}
else if ("number < 0")
{
printf("1");
}

使用了像"number > 0"这样的字符串文字作为条件表达式。表达式中使用的字符串文字转换为指向其第一个字符的指针,并且始终不等于0. t而if-else语句中的第一个条件产生true

我认为你的意思是以下

if( number > 0 )
{
printf ( "1");
         ^^^^^ 
}
else if (number == 0)
{
printf("0");
}
else 
{
printf("-1");
       ^^^^^
}