| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1049 人关注过本帖
标题:c疑问(大家帮忙找下错误)我是新手谢谢
只看楼主 加入收藏
祝建新
Rank: 1
等 级:新手上路
帖 子:10
专家分:3
注 册:2010-3-25
结帖率:60%
收藏
已结贴  问题点数:20 回复次数:12 
c疑问(大家帮忙找下错误)我是新手谢谢
int main ( )
{
    double  A,B,C,x1,x2,x;
    printf ("请输入三个数字: ");
    scanf ("%1f %1f %1f",&A,&B,&C);
    if (A==0.0)
       {
          if (B==0.0)
              printf ("Error");
          else
              printf ("x=%f\n",-C/B);
              
       }
    else  if  (B==0.0)
           {
               if (A*C>=0.0)
                   printf ("x1=+j%f,x2=-j%f\n",sqrt(C/A),sqrt(C/A));
               else
                   printf ("x1=+%f,x2=-%f\n",sqrt(-C/A),sqrt(-C/A));
           }         
            else if (B*B-4*A*C>=0.0)
                    printf ("x1=%f,x2=%f\n",(-B-sqrt(B*B-4*A*C))/(2*A),C/(A*x1));        
                 else
                    printf ("x1=%f+j%f,x2=%f-j%f ",-B/(2A),sqrt(B*B-4*A*C)/2A,-B/(2A),sqrt(B*B-4*A*C/2A ));      
              
        
     system ("pause");
     return 0;                 
      
}
该程序目的是解一元二次方程A*x*x+B*X+C=0,但结果却是“ invalid suffix "A" on integer constant ”。不知何意?请求指点,不胜感激
搜索更多相关主题的帖子: 疑问 
2010-04-05 20:14
ggvvcc
Rank: 3Rank: 3
来 自:山东临沂
等 级:论坛游侠
帖 子:50
专家分:119
注 册:2010-4-3
收藏
得分:8 
#include <stdio.h>
#include <math.h>

int main()
{
    int a, b, c, d;

    printf("please enter a, b, c: \n");
    scanf("%d%d%d", &a, &b, &c);

    if(a == 0)
        printf("have one root : x = %.2f\n", -c/b);
    else{
        d = b * b - 4 * a * c;
        if(d > 0){
            printf("have two different root: x1 = %.2f, x2 = %.2f\n",
                (-b + sqrt(d))/ (2 * a), (-b - sqrt(d)) / (2 * a));
        }else if(d == 0){
            printf("have two same root: x1 = x2 = %.2f\n", -b / (2 * a));
        }else
            printf("have no root.\n");
    }

    return 0;

}
要禁止浮点数与0进行比较,因为浮点数在精度范围外用随机数字填充。
2010-04-05 20:28
xueyuhanhai
Rank: 4
等 级:业余侠客
帖 子:90
专家分:238
注 册:2010-4-5
收藏
得分:0 
楼主你的思路好乱啊。
楼上的不错。
2010-04-05 22:35
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:1 
浮点数比较是否相等要用精度,如:
if (fabs(a-b) < 0.0000001)
2010-04-06 09:03
woodydongli
Rank: 2
等 级:论坛游民
帖 子:57
专家分:84
注 册:2010-4-4
收藏
得分:1 
以下是引用ldg628在2010-4-6 09:03:03的发言:

浮点数比较是否相等要用精度,如:
if (fabs(a-b) < 0.0000001)
顶.
2010-04-06 10:28
流云追风
Rank: 2
等 级:论坛游民
帖 子:15
专家分:16
注 册:2010-4-1
收藏
得分:0 
真晕,下面应该是2*A吧
2010-04-06 11:24
祝建新
Rank: 1
等 级:新手上路
帖 子:10
专家分:3
注 册:2010-3-25
收藏
得分:0 
谢谢指点!不过应在-b/(2*a)前加float.
2010-04-06 13:01
祝建新
Rank: 1
等 级:新手上路
帖 子:10
专家分:3
注 册:2010-3-25
收藏
得分:0 
为什么会出现“invalid suffix "A" on integer constant”。我查了一下是“无效的整形常量后缀”之意!谢谢!
2010-04-06 15:11
etcr2000
Rank: 2
等 级:论坛游民
帖 子:22
专家分:18
注 册:2010-3-30
收藏
得分:1 
比较是这样的,但是,如果都用实数,怎么比
2010-04-06 17:21
liuyafei
Rank: 2
等 级:论坛游民
帖 子:5
专家分:10
注 册:2010-4-6
收藏
得分:8 
#include "stdio.h"
#include "math"//不知道数学是这个英文吗?
main()
{
float a,b,c,x1,x2,s,q;
scanf("%lf,%lf,%lf",&a,&b,&c);
q=b*b-4*a*c;
s=sqrt(q);
x1=((-b)+s)/(2*a);
x2=((-b)-s)/(2*a);
if(q>0)
{
  printf("这个方程有俩个不相等的实数根");
  printf("%d,%d",x1,x2);
}
elseif(q=0)
    {
      printf("这个方程有俩个相等的实数根");
      printf("%d,%d",x1,x2);
    }
        elseif(q<0)
        {
          printf("这个方程没有实数根");
          printf("error");
        }
}
2010-04-06 18:23
快速回复:c疑问(大家帮忙找下错误)我是新手谢谢
数据加载中...
 
   



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

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