| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6852 人关注过本帖
标题:我写的一个程序,为什么只执行if后面的,一直不执行else后面的
只看楼主 加入收藏
湖心岛
Rank: 2
等 级:论坛游民
帖 子:12
专家分:10
注 册:2013-6-8
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:11 
我写的一个程序,为什么只执行if后面的,一直不执行else后面的
#include <stdio.h>
#include <math.h>
int main ()
{
    float a,s;
    scanf("%f",&a);
   
    if (0<a<1000)
       s=sqrt(a);
       printf("s=%f",s);   
    else
       printf("please retype it again.");

    return 0;

}
还有就是当a的平方根是小数的时候,怎样舍去小数。
搜索更多相关主题的帖子: include 
2013-06-20 13:26
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:10 
程序代码:
#include <stdio.h>
#include <math.h>
int main ()
{
    float a;
    scanf("%f",&a); 
    if (0<a<1000)
       printf("s=%d\n",(int)sqrt(a));//改为这样!!  
    else
       printf("please retype it again.\n");

    return 0;

}

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-06-20 13:33
wyw19880809
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:178
专家分:738
注 册:2013-3-14
收藏
得分:10 
if (0<a<1000)
       s=sqrt(a);
       printf("s=%f",s);   
    else
       printf("please retype it again.");

这风格实在不敢恭维
if ((0<a) && (a<1000))
{
       s=sqrt(a);
       printf("s=%f",s);   
}
else
       printf("please retype it again.");
不太明白 你的编译器怎么能够顺利的编译呢????
2013-06-20 13:34
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:0 
回复 2楼 我叫沃恩
我的代码有错,判断条件的问题:a>0&&a<1000!我没细看!!!

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-06-20 13:38
Han_FlyB
Rank: 6Rank: 6
等 级:侠之大者
帖 子:143
专家分:424
注 册:2013-3-25
收藏
得分:0 
是不是你输入的数字都符合第一个if就不执行else了?
2013-06-20 13:52
YJ_Hao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:215
专家分:609
注 册:2013-3-22
收藏
得分:0 
1<a<1000
在VC中直接报错,不报错的话,前面的1<a无论a为何值都只能返回0或1,永远小于1000,所以不可能有else
2013-06-20 15:15
lzj12530
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:264
专家分:841
注 册:2013-3-28
收藏
得分:0 
if (0<a<1000)   //条件不能这么写a>0&&a<1000
     {  
         s=sqrt(a);         //if后面要执行的语句块 应该用大括弧括起来
        printf("s=%f",s);
     }  

C++菜鸟
2013-06-20 15:47
楚铮
Rank: 1
等 级:新手上路
帖 子:2
专家分:3
注 册:2013-6-20
收藏
得分:0 
#include <stdio.h>
#include <math.h>
int main ()
{
    float a,s;
    scanf("%f",&a);
   
    if (a>=0&&a<=100)
    {s=sqrt(a);
    printf("s=%f",s);}   
    else
       printf("please retype it again.");

    return 0;

}




运行了  应该没错
2013-06-20 16:57
湖心岛
Rank: 2
等 级:论坛游民
帖 子:12
专家分:10
注 册:2013-6-8
收藏
得分:0 
回复 3楼 wyw19880809
自己自学的,呵呵
2013-06-20 21:40
湖心岛
Rank: 2
等 级:论坛游民
帖 子:12
专家分:10
注 册:2013-6-8
收藏
得分:0 
回复 2楼 我叫沃恩
版主,这个
 printf("s=%d\n",(int)sqrt(a));最后为什么是这样的,从来没见过这样的,但我上机试了下,是对的。是我还没学到这里来吗
2013-06-20 21:43
快速回复:我写的一个程序,为什么只执行if后面的,一直不执行else后面的
数据加载中...
 
   



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

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