小白刚学c,求助大神

sixto47 2016-09-14 04:58:01
#include <stdio.h>
#include <math.h>
int main ()
{
int a,b,c;
printf("input a,b,c/n");
scanf("%d%d%d",&a,&b,&c);
double delta;
double x1;
double x2;
delta=(b*b-4*a*c);
if(delta > 0)
{
x1=(-b-sqrt(delta)/(2*a));
x2=(-b+sqrt(delta)/(2*a));
printf("x1=%.2f, x2=%.2f\n",x1,x2);
}
else if (delta =0)
{
x1=(-b)/(2*a);
x2=x1;
printf("x1=%.2f, x2=%.2f\n",x1,x2);
}
else
{
printf("无解”!\n");
}
return 0;
}
...全文
202 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
paschen 2016-09-15
  • 打赏
  • 举报
回复
引用 6 楼 sixto47的回复:
[quote=引用 5 楼 paschen 的回复:] 如果要用逗号,scanf那句改成:scanf("%d,%d,%d",&a,&b,&c);
我发个修改版,你再帮我看看到底还有什么问题,谢谢 #include <stdio.h> #include <math.h> int main() { int a,b,c; printf("input a,b,c\n"); scanf("%d%d%d",&a,&b,&c); double delta; double x1; double x2; delta = b * b - 4 * a * c ; if(delta > 0) { x1 = (-b - sqrt( delta ))/ (2 * a) ; x2 = (-b + sqrt( delta ))/(2 * a) ; printf("x1 = %.2f,x2 = %.2f\n",x1,x2) ; } else if (delta == 0) { x1=(-b) / (2 * a ); x2=x1 ; printf("x1 = %.2f,x2 = %.2f\n",x1,x2 ; } else { printf("无解\n"); } } [/quote] printf("x1 = %.2f,x2 = %.2f\n",x1,x2 ; 后面少了一半括号
sixto47 2016-09-14
  • 打赏
  • 举报
回复
引用 5 楼 paschen 的回复:
如果要用逗号,scanf那句改成:scanf("%d,%d,%d",&a,&b,&c);
我发个修改版,你再帮我看看到底还有什么问题,谢谢 #include <stdio.h> #include <math.h> int main() { int a,b,c; printf("input a,b,c\n"); scanf("%d%d%d",&a,&b,&c); double delta; double x1; double x2; delta = b * b - 4 * a * c ; if(delta > 0) { x1 = (-b - sqrt( delta ))/ (2 * a) ; x2 = (-b + sqrt( delta ))/(2 * a) ; printf("x1 = %.2f,x2 = %.2f\n",x1,x2) ; } else if (delta == 0) { x1=(-b) / (2 * a ); x2=x1 ; printf("x1 = %.2f,x2 = %.2f\n",x1,x2 ; } else { printf("无解\n"); } }
paschen 2016-09-14
  • 打赏
  • 举报
回复
如果要用逗号,scanf那句改成:scanf("%d,%d,%d",&a,&b,&c);
paschen 2016-09-14
  • 打赏
  • 举报
回复
引用 3 楼 sixto47的回复:
运行还是有点问题,答案不太对,输入1,2,1 1,5,6依然还是显示无解,上面的代码问题,我是已经改过了
你应该输入 1 2 1 也就是中间用空格隔开,而不是逗号
sixto47 2016-09-14
  • 打赏
  • 举报
回复
运行还是有点问题,答案不太对,输入1,2,1 1,5,6依然还是显示无解,上面的代码问题,我是已经改过了
paschen 2016-09-14
  • 打赏
  • 举报
回复
else if (delta =0) 改成 else if (delta ==0) 经常写错就写成else if (0 == delta),这样少了=号编译器会报错
小灸舞 版主 2016-09-14
  • 打赏
  • 举报
回复
1.printf("input a,b,c/n");应该是printf("input a,b,c\n"); 2.else if (delta = 0)应该是else if (delta == 0)

#include <stdio.h>
#include <math.h>
int main()
{
	int a, b, c;
	printf("input a,b,c\n");
	scanf("%d%d%d", &a, &b, &c);
	double delta;
	double x1;
	double x2;
	delta = (b*b - 4 * a*c);
	if (delta > 0)
	{
		x1 = (-b - sqrt(delta) / (2 * a));
		x2 = (-b + sqrt(delta) / (2 * a));
		printf("x1=%.2f,   x2=%.2f\n", x1, x2);
	}
	else if (delta == 0)
	{
		x1 = (-b) / (2 * a);
		x2 = x1;
		printf("x1=%.2f,  x2=%.2f\n", x1, x2);
	}
	else
	{
		printf("无解”!\n");
	}
	return 0;
}

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧