//解一元二次方程
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
float a, b, c, d, t1, t2, x1, x2;
printf("Input a,b,c\n");
scanf("%f,%f,%f", &a, &b, &c);
if (a == 0.0)
if (b == 0.0)
printf("No Solution\n");
else
{
x1 = -c / b;
printf("x = %f\n", x1);
}
else
{
d = b*b - 4 * a*c;
t1 = -b / (2 * a);
t2 = sqrt(fabs(d)) / (a * 2);
if (d == 0.0)
{
x1 = t1;
printf("x = %f\n", x1);
}
else if (d > 0.0)
{
x1 = t1 + t2;
x2 = t1 - t2;
printf("x1 = %f , x2 = %f\n", x1, x2);
}
else
{
printf("x1 = %f+%fi , x2 = %f-%fi\n", t1, t2, t1, t2);
}
}
system("pause");
}
给你写个模板:
#include <stdio.h>能不能让变量以逗号的方式输入
追答一个 scanf 函数的格式化输入,遇到空格或回车,并且已读取完毕时才会结束,如果同一行输入3个数用逗号隔开,然后按回车,由于没有空格隔开 scanf 认为只输入了一次,第一个 scanf 读取到了数据,然后会卡在第二个 scanf ,等待你的输入。
如果硬要实现用逗号分隔,可以把一行输入保存为一个字符串,例如:
输入:23.45,34.67,87.09
scanf("%s", str); // 则这里的 str = "23.45,34.67,87.09"
然后自己用逗号分隔为三个字符串,再做处理。