| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 519 人关注过本帖
标题:各路大神求指教 本人新手自学
只看楼主 加入收藏
zhj150680132
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-10-27
收藏
 问题点数:0 回复次数:7 
各路大神求指教 本人新手自学
#include <stdio.h>
#include <math.h>
void main()
{
  float a,b,c,p,q,x1,x2;
  printf("input a b c\n");
  scanf("%f,%f,%f",&a,&b,&c);
  p=-b/(2*a);
  q=b*b-4*a*c;
  if(q==0)
  {
      x1=x2=p;
      printf("x1=%f,x2=%f",x1,x2);
  }
  else if(q>0)
  {
      x1=(-b+sqrt(q))/(2*a);
      x2=(-b-sqrt(q))/(2*a);
       printf("x1=%f,x2=%f",x1,x2);
  }
  else if(q<0)
  {
      printf("the rustle is wrong\n");
  }
}
这是一个简单的一元二次方程,我自己写的一个程序,可能严谨度不够,我想知道为什么运行之后,输入数字是乱码?求指教!!
搜索更多相关主题的帖子: include wrong 
2014-10-27 21:46
zhj150680132
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-10-27
收藏
得分:0 
回复 楼主 zhj150680132
自己输入错误了 呵呵 这里好像最后的else if有点问题!应该是if去掉,大括号去掉
2014-10-27 22:04
陈志文
Rank: 2
等 级:论坛游民
帖 子:17
专家分:10
注 册:2014-10-13
收藏
得分:0 
#include "stdio.h"
#include "math.h"
int main()
{
    float a,b,c,disc,x1,x2,real,imag;
    scanf("%f%f%f",&a,&b,&c);
    if(fabs(a)<1e-6)  {printf("该方程不是二次方程!\n");return;}
    disc=b*b-4*a*c;
    if (fabs(disc)<=1e-6)
    printf("该方程有两个相等的实根: %.4f .\n",-b/(2*a));
    if (disc>1e-6)
    {x1=(-b+sqrt(disc))/(2*a);
     x2=(-b-sqrt(disc))/(2*a);
     printf("该方程有两个不相等的实根: %.4f , %.4f.\n",x1,x2);
    }
if (disc<-1e-6)
{real=-b/(2*a);
imag=sqrt(-disc)/(2*a);
printf("该方程有两个共轭复根:\n");
printf("%.4f+%.4fi\n",real,imag);
printf("%.4f-%.4fi\n",real,imag);
}
return (0);
}
2014-10-28 15:47
happy两棵树
Rank: 2
等 级:论坛游民
帖 子:28
专家分:62
注 册:2013-7-18
收藏
得分:0 
scanf("%f,%f,%f",&a,&b,&c)  如果%f之间有逗号,那你输入a,b,c 的值的时候,也应该加逗号,譬如4,4,1,数字之间的逗号不可省去。

scanf("%f%f%f",&a,&b,&c) 这样子,就可以直接连续输入a,b,c的值,无需加逗号。
2014-10-28 16:49
happy两棵树
Rank: 2
等 级:论坛游民
帖 子:28
专家分:62
注 册:2013-7-18
收藏
得分:0 
程序代码:
#include <math.h>
int main()
{
  float a,b,c,x1,x2;
  double p,q;
   printf("input a b c\n");
   if ( (x1 =scanf("%f%f%f",&a,&b,&c)) != 3)
    printf("x1 is %f \n" ,x1) ;

  p=-b/(2*a);
  q=b*b-4*a*c;
  if(q==0)
  {
      x1=x2=p;
      printf("x1=%f,x2=%f",x1,x2);
  }
  else if(q>0)
  {
      x1=(-b+sqrt(q))/(2*a);
      x2=(-b-sqrt(q))/(2*a);
       printf("x1=%f,x2=%f",x1,x2);
  }
  else if(q<0)
  {
      printf("the rustle is wrong\n");
  }
  return 0;
}
2014-10-28 16:52
zhj150680132
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-10-27
收藏
得分:0 
回复 4 楼 happy 两棵树
恩,是的 我输入有错误忘记逗号了。
2014-10-29 17:44
Sv少
Rank: 3Rank: 3
来 自:山东青岛
等 级:论坛游侠
威 望:1
帖 子:53
专家分:168
注 册:2011-11-7
收藏
得分:0 
盖楼

Sv少  run
2014-10-29 19:22
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用Sv少在2014-10-29 19:22:42的发言:

盖楼

口头警告:不要灌水。

授人以渔,不授人以鱼。
2014-10-29 19:25
快速回复:各路大神求指教 本人新手自学
数据加载中...
 
   



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

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