标题:请大佬帮忙纠错 谢谢了
只看楼主
qiqicai
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2021-3-23
结帖率:84.62%
 问题点数:0 回复次数:4 
请大佬帮忙纠错 谢谢了
#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 ;
   
   
   
   
   
   
   
}
搜索更多相关主题的帖子: printf 执行 int 纠错 return 
2021-04-01 23:52
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:554
专家分:3690
注 册:2019-7-29
得分:0 
程序代码:
#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 ;
}

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2021-04-02 08:27
qiqicai
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2021-3-23
得分:0 
回复 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 ;
}
2021-04-02 22:23
apull
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:三体星系
等 级:版主
威 望:185
帖 子:1404
专家分:8479
注 册:2010-3-16
得分:0 
必须要满足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 ;
}
2021-04-02 22:46
qiqicai
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2021-3-23
得分:0 
回复 4楼 apull
多谢你的指导我懂了!!!!
2021-04-04 12:24



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-505320-1-1.html




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

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