主题:朋友们帮忙看看这个程序哪里出了问题好吗
zc_wolf
[专家分:0] 发布于 2011-10-14 00:24:00
#include <stdio.h>
#include <math.h>
void main()
{
int a,b;
float m,n,x1,x2;
scanf("%d,%d",&a,&b);
m=b*b-4*a*c;
if(m>=0)
{
n=sqrt(b*b-4*a*c);
x1=(-b+n)/(2*a);
x2=(-b-n)/(2*a);
printf("%f,%f",x1,x2);
}
else
printf("方程无实解");
}
回复列表 (共8个回复)
沙发
argentmoon [专家分:13260] 发布于 2011-10-14 08:47:00
问题就是你没说出了什么问题
板凳
wukaikailive [专家分:80] 发布于 2011-10-16 16:02:00
问题是你的n是什么东西
4 楼
laowang [专家分:90] 发布于 2011-10-16 20:34:00
主要问题是你的scanf("%d,%d",&a,&b);,%d与%d之间不能有逗号,你看一下书。然后要输入三个值,你少输入了c,如果考虑得全面一点,a,b,c全为浮点数更好。下面是我修改后的代码。
#include <stdio.h>
#include <math.h>
void main()
{
float a,b,c;
float x1,x2;
float m;
float n;
scanf("%f %f %f",&a,&b,&c);
m=(b*b-4*a*c);
if(a == 0)
printf("only root:%f\n",-c/b);
else{
if( m < 0)
printf("方程无实解\n");
else{
n=sqrt(b*b-4*a*c);
if( n > 0){
x1=(-b+n)/(2*a);
x2=(-b-n)/(2*a);
printf("Two different roots:\n");
printf("root one:%f,root two%f\n",x1,x2);
}
else
printf("two same roots:%f\n",(-b/(2*a)));
}
}
}
5 楼
zc_wolf [专家分:0] 发布于 2011-10-24 12:17:00
谢谢
6 楼
YJL66 [专家分:0] 发布于 2011-10-27 11:46:00
变量C都没有定义。。。
7 楼
y372465774 [专家分:0] 发布于 2011-10-27 23:55:00
本人是大一新生、学的是c++。你那个else 面怎么还有(y<0)?这个好像没没有的吧
8 楼
bmfw [专家分:30] 发布于 2011-11-05 17:21:00
#include <stdio.h>
#include <iostream>
#include <cmath>
void main()
{
int a,b,c;
float m,n,x1,x2;
scanf("%d%d%d",&a,&b,&c);
m=b*b-4*a*c;
if(m>=0)
{
n=sqrt(m);
x1=(-b+n)/(2*a);
x2=(-b-n)/(2*a);
printf("%f,%f",x1,x2);
}
else
printf("方程无实解");
}
我来回复