| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1689 人关注过本帖
标题:请大大帮我看看我这段C源码的问题在哪?
只看楼主 加入收藏
w2015
Rank: 2
等 级:论坛游民
帖 子:23
专家分:26
注 册:2016-1-28
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:9 
请大大帮我看看我这段C源码的问题在哪?
#include<stdio.h>
#include<math.h>
int main()
{   int max(int a,int b,int c);
    int min(int a,int b,int c);
    int f();
   double a4;
    int a1,a2,a3;
    scanf("%d%d%d",&a1,&a2,&a3);
    a4=a2*a2-4*a1*a3;
    if(a4>0)
    {
        int max(a1,a2,a3);
    }
   
    else if(a4==0){
        int min(a1,a2,a3);
    }
    else
    int f();
    return 0;
}
int max(int a,int b,int c)
{
    int i,j,x1,x2;
    i=(-b)/2*a;
    j=sqrt(b*b-4*a*c);
    x1=i+j;x2=i-j;
    printf("%d %d\n",x1,x2);
   
}
int min(int a,int b,int c)
{
    int i;
    i=(-b)/2*a;
    printf("%d\n",i);
   
}
int f()
{
    printf("无解\n");
   
}


我想调用三个函数来判断,请各位帮我解下问题。
2016-01-31 16:54
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:4 
函数返回值错误,还有你的一元二次方程的求根公式也用错了吧。
程序代码:
#include<stdio.h>
#include<math.h>
int main()
{   void max(int a,int b,int c);  //三个函数都没有返回值,要用void
    void min(int a,int b,int c);
    void f();
    int a4;  
    int a1,a2,a3;
    scanf("%d%d%d",&a1,&a2,&a3);
    a4=a2*a2-4*a1*a3;  //a4是整数
    if(a4>0)
    {
        max(a1,a2,a3);
    }    
    else if(a4==0)
    {
        min(a1,a2,a3);
    }
    else
    { f(); }
    return 0;
}
void max(int a,int b,int c) 
{
    double i,j,x1,x2;
    i=(-b)/(2.0*a);  //注意整数除以整数返回的是整数,这样的话根是不对的
    j=sqrt(b*b-4.0*a*c)/(2.0*a);  //此处公式用错,上面一样
    x1=i+j;
    x2=i-j;
    printf("%f %f\n",x1,x2);    
}
void min(int a,int b,int c)
{
    double i;
    i=(-b)/(2.0*a);  //注意整数除以整数返回的是整数,这样的话根是不对的
    printf("%f\n",i);    
}
void f()
{
    printf("无解\n");    
}


[此贴子已经被作者于2016-1-31 21:34编辑过]


   唯实惟新 至诚致志
2016-01-31 21:05
cheetah
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:119
专家分:118
注 册:2013-6-29
收藏
得分:4 
楼上已经说的很详细了

天道酬勤
2016-02-01 01:55
w2015
Rank: 2
等 级:论坛游民
帖 子:23
专家分:26
注 册:2016-1-28
收藏
得分:0 
回复 2楼 qq1023569223
大大,你好,我还有问题就是那个你说的整数除以整数是不对的那个,是怎么回事,还有就是我该用什么类型来定义变量,int?or double?
2016-02-01 10:57
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:4 
double呗  INT/INT=INT  INT/DOUBLE=DOUBLE  DOUBLE/INT=DOUBLE DOUBLE/DOUBLE=DOUBLE

DO IT YOURSELF !
2016-02-01 11:12
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
回复 4楼 w2015
如楼上所说,比如你的根是0.5,按你的程序会输出为0,1.5就会输出为1。记住int/int的结果是整数,按实际上的四舍五入。所以根用double,运算的时候把2变成2.0。

[此贴子已经被作者于2016-2-1 11:43编辑过]


   唯实惟新 至诚致志
2016-02-01 11:41
w2015
Rank: 2
等 级:论坛游民
帖 子:23
专家分:26
注 册:2016-1-28
收藏
得分:0 
回复 6楼 qq1023569223
谢谢,问题解决。
2016-02-01 15:35
w2015
Rank: 2
等 级:论坛游民
帖 子:23
专家分:26
注 册:2016-1-28
收藏
得分:0 
回复 5楼 wp231957
谢谢,问题解决。
2016-02-01 15:35
cheetah
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:119
专家分:118
注 册:2013-6-29
收藏
得分:0 
恭喜!

天道酬勤
2016-02-08 19:31
锄禾当午
Rank: 2
等 级:论坛游民
帖 子:12
专家分:34
注 册:2016-2-8
收藏
得分:0 
整形和实型是有区别的。
2016-02-08 22:17
快速回复:请大大帮我看看我这段C源码的问题在哪?
数据加载中...
 
   



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

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