| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1123 人关注过本帖
标题:c语言 为什么这个代码的if后只能跟else if 而跟else 就直接报错啊?
只看楼主 加入收藏
hisia_
Rank: 2
等 级:论坛游民
帖 子:45
专家分:26
注 册:2016-1-24
结帖率:72.73%
收藏
已结贴  问题点数:20 回复次数:2 
c语言 为什么这个代码的if后只能跟else if 而跟else 就直接报错啊?

#include <stdio.h>
#include <math.h>
int main()
{
    int a, b, c, x1, drt, x2;
    scanf("%d %d %d",&a, &b, &c);
    drt=b*b-4*a*c;
    if(drt>0)
    {
        x1=(-b+sqrt(drt))/2*a;
        x2=(-b-sqrt(drt))/2*a;
        printf("%d %d",x1, x2);
    }
        else if(drt==0)
        {
            x1=x2=(-b)/2*a;
            printf("%d %d",x1, x2);
        }
            else(drt<0)
            {
                printf("此函数无实数根");
            }
}

这是一个求  一元二次方程的代码  求解 为什么if后只能跟else if  而跟else(最后跟的else) 就直接报错啊。。。
2016-01-24 10:12
qq1625127317
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:185
专家分:450
注 册:2015-9-3
收藏
得分:20 
#include <stdio.h>
#include <math.h>
int main()
{
    double a, b, c, x1, drt, x2;
    scanf("%d %d %d",&a, &b, &c);
    drt=b*b-4*a*c;
    if(drt>0)
    {
        x1=(-b+sqrt(drt))/2*a;
        x2=(-b-sqrt(drt))/2*a;
        printf("%d %d",x1, x2);
    }
        else if(drt==0)
        {
            x1=x2=(-b)/2*a;
            printf("%d %d",x1, x2);
        }
            else                             //else  这块的形式你再看看
            {
                printf("此函数无实数根");
            }
}

静坐常思己过,闲谈莫论人非
2016-01-24 11:01
hisia_
Rank: 2
等 级:论坛游民
帖 子:45
专家分:26
注 册:2016-1-24
收藏
得分:0 
回复 2楼 qq1625127317
是的!!就是这个问题,,谢谢了。
2016-01-24 11:30
快速回复:c语言 为什么这个代码的if后只能跟else if 而跟else 就直接报错啊?
数据加载中...
 
   



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

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