注册 登录
编程论坛 C语言论坛

请大佬帮忙纠错 谢谢了

qiqicai 发布于 2021-04-01 23:52, 1137 次点击
#include <stdio.h>
int main()
{
int a;
printf("输入一个数字:");
scanf("%d",&a);
if(a>0)

 if(a<0)                                      这块我不知道为什么只能执行a>0的程序 a<0 a=0 都不能执行 不知道为什么  求帮忙

  if(a==0)
    printf("%d是0", a);
  else
   printf("%d是负数",a);

  else
printf("%d是正数",a);

     
return 0 ;
   
   
   
   
   
   
   
}
4 回复
#2
纯蓝之刃2021-04-02 08:27
程序代码:
#include <stdio.h>
int main()
{
    int a;
    printf("输入一个数字:");
    scanf("%d",&a);
    if(a>0)

        if(a<0)   

            if(a==0)
                printf("%d是0", a);
            else
                printf("%d是负数",a);

        else
            printf("%d是正数",a);


    return 0 ;
}

将你的程序按照格式匹配后是这个样子,发现问题了么?
else会和离它最近的未匹配else的if进行匹配,也就是你最后一个else会和if(a<0)进行匹配。所以你a=0的时候执行if(a>0)的下一句就是return。
要用括号将你想要表达的括起来。你的判断逻辑也有问题的
程序代码:
#include <stdio.h>
int main()
{
    int a;
    printf("输入一个数字:");
    scanf("%d",&a);
    if(a>0)
    {
        printf("%d是正数",a);
    }
    else
    {
        if(a<0)
        {
            printf("%d是负数",a);
        }
        else
        {
            printf("%d是0", a);
        }
    }

    return 0 ;
}
#3
qiqicai2021-04-02 22:23
回复 2楼 纯蓝之刃
#include <stdio.h>
int main()
{
int a;
printf("输入一个数字:");
scanf("%d",&a);
if(a>0)
{
 if(a<0)
 {                                          那如果我非要用三重if语句来写的话怎么写呢
  if(a=0)
  {
    printf("%d是0", a);                                   
}
   printf("%d是负数",a);
}
printf("%d是正数",a);

}

     
return 0 ;
}
#4
apull2021-04-02 22:46
必须要满足if条件才会执行if里的代码。你那代码中如果输入的是0或负数,第一个if就跳过不执行了。
下面这个能满足你的要求,但没人会这么写吧。

程序代码:
#include <stdio.h>
int main()
{
    int a;
    printf("输入一个数字:");
    scanf("%d",&a);
    if(a>0 || a<=0)
    {
        if(a<=0)
        {
            if(a==0)
            {
                printf("%d是0", a);
                return 0;
            }
           printf("%d是负数",a);
           return 0;
        }
        printf("%d是正数",a);
    }         
    return 0 ;
}
#5
qiqicai2021-04-04 12:24
回复 4楼 apull
多谢你的指导我懂了!!!!
1