c语言问题,本人新手,编了一个解方程的小程序,不知哪里出错,望指教。

# include <stdio.h>
# include <math.h>

int main(void)
{
double a;
double b;
double c;
double delta;
double x1;
double x2;
delta = b*b - 4ac;

printf("请依次输入a,b,c的值(中间用空格间隔):");
scanf("%lf %lf %lf",&a,&b,&c);

if (delta > 0)
{
x1 = (-b + sqrt(delta))/2*a;
x2 = (-b - sqrt(delta))/2*a;
printf("有两个解:x1 = %lf,x2 = %lf",x1,x2);
}
else if (delta == 0)
{
x2 = x1 = (-b + sqrt(delta))/2*a;
printf("有一个解:x1 = x2 =%lf",x1);
}
else if (delta < 0)
{
printf("无解");
}

return 0;

}

# include <stdio.h>
# include <math.h>

void main()
{
double a;
double b;
double c;
double delta;
double x1;
double x2;
delta=b*b-4*a*c;

printf("请依次输入a,b,c的值(中间用空格间隔):");
scanf("%lf %lf %lf",&a,&b,&c);

if (delta>0)
{
x1=(-b+sqrt(delta))/2*a;
x2=(-b-sqrt(delta))/2*a;
printf("有两个解:x1=%lf,x2=%lf",x1,x2);
}
else if (delta==0)
{
x2=x1=(-b+sqrt(delta))/2*a;
printf("有一个解:x1=x2=%lf",x1);
}
else if (delta<0)
{
printf("无解");
}

}

首先 你的输入状态好像有些不是英文状态 我已帮你改过
还有就是4ac 不能这样写
c语言环境没那么聪明追问

谢谢了。但是请你试一试呢,为什么我的程序没有报错,但是输进去的无论是那个值,都显示无解。

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-02-26
你没定义那些变量就使用了,肯定会报错,再一个,就是 delta = b*b - 4ac;中的4ac应该改为4*a*c
第2个回答  2012-02-25
如果你是拷贝的,那么第一个算是4ac不对吧~是不是着急了没打“*”~
scanf("%lf %lf %lf",&a,&b,&c); 这个用%f就可以了吧~追问

还是有问题啊

追答

我所学的开头这样写的# include
# include

void int……
我还想确定下,你的数据是整型还是实型,感觉是int和double冲突了~我也是菜鸟一枚,希望能帮到你~

第3个回答  2012-02-26
4abc 没有定义,如果是4*a*b*c 话,要把乘号(*)加进去

c语言编程求2的n次方出了点问题,本人新手
include<stdio.h>int main(){int a,b=1;for(a=0; a<=9; a++){printf("b=%d\\n",b);b=b*2;}return 0;}

这是一个设计二次函数的c语言程序,不知道错在哪儿 求前辈解答一下。 谢...
恕我直言图看不清.include <stdio.h># include <math.h>int main(void){int a = 1;int b = 2;int c = 2;double x1;double x2;double delta;delta = (b*b - 4 * a*c);if (delta>0){x1 = (-b + sqrt(delta)) \/ (2 * a);x2 = (-b - sqrt(delta)) \/ (2 * a...

本人是个新手,用opendcl和autolisp编了个小程序,但不知道怎样将.odcl和...
本人是个新手,用opendcl和autolisp编了个小程序,但不知道怎样将.odcl和.lsp文件编成一个.vlx文件? 现在是每移动机子就得拷.ODCL、reuntime.re.dll和opendcl.18.arx跟着,怎么才能打包到另一个电脑里一个文件就可以运行?... 现在是每移动机子就得拷.ODCL、reuntime.re.dll和opendcl.18.arx跟着,怎么才能打包...

求一个用C语言编写的小游戏代码
WORD c = g_Blocks[g_CurBlock.id].dir[g_CurBlock.dir]; while((c & 0xF) == 0) { g_CurBlock.y--; c >>= 4; } \/\/ 绘制新方块 DrawBlock(g_CurBlock); \/\/ 绘制下一个方块 setfillstyle(BLACK); bar((WIDTH + 1) * SIZE, 0, (WIDTH + 5) * SIZE - 1, 4 * SIZE - 1); ...

为什么用c语言写出来是这个样子啊?哪里出错了?为什么多了个3?
你的问题的原因是由于float型数据在内存中保存时,只保留6位有效的数字,比如:3.14159、31.4159、314.159以及3141.59都是具有六位有效的数字(小数点不计) 。这些数字都可以完整的保存在内存中。但是,在输出时,%f格式是默认输出带6位小数的数字(小数点后面有6位数字),这就会产生不够现象,如...

本人java新手,现有一小程序问题纠结了 半天没纠结出来,求高手指教。
public static void main(String[] args) { System.out.println("请输入用户名(按回车键结束):");Scanner scanner=new Scanner(System.in);\/\/接收键盘输入 String userName=scanner.nextLine();\/\/读取 \/\/这里用户名与密码输入用String型,建议不要用char或者int if("王".equals(userName)){ System...

c语言编程,输入两个数a,b (a
include <stdio.h>int main(){ int a, b; int i; scanf ("%d%d", &a, &b); for (i = a; i <= b; ++i){ printf ("%d ", i); } printf ("\\n"); return 0;} 程序执行结果如下:

...才能让它生成游戏才能玩?连接是什么意思,本人新手希望详解!!感_百度...
是编译过程中的一个步骤,有源代码到目标程序(即.exe文件)的生成。有如下步骤:预处理:去掉程序中没用的部分:如注释 编译:检查程序有没有语法错误 汇编:将c语言程序转换成汇编程序 连接:连接动态库,静态库,生成可执行程序(.exe)、解答完毕,希望可以帮助到你,如果疑问,可以追问我。

自学c语言 零基础 看什么书 该怎么学
《《啊哈C语言:小学生坐在马桶上都可以读懂的C语言编程入门书》.zip》百度网盘资源免费下载 链接:https:\/\/pan.baidu.com\/s\/1aEXrb1oxnRmMWUlafELpfQ 提取码:pusr啊哈C语言:小学生坐在马桶上都可以读懂的C语言编程入门书

C语言问题
'101'不符合,这是一个字符串,不能作为常数。"\\"不符合,因为\\"会对双引号转义,找不到另一个双引号。代码会出错。而且就算是"\\""也不符合,因为编译器会把它理解成一个字符串,而非单个字符。e3不符合。019不符合,0开头代表8进制数,不能出现9。0x1e符合,十六进制数。“ab\\n"不符合,...

相似回答