热心网友
回答时间:2025-01-12 05:33
原因就是你的输入函数写的有问题,你的格式控制列表是这样写的:"a=%f,b=%f,c=%f\n",把后面的字符'\n'去掉就可以了,这样程序就能正常运行了。否则无论输入多少个'\n'(回车都不好使的),因为scanf函数输入的时候会自动忽略换行符,但是你的格式控制列表中却要求必须输入一个换行。所以会出现问题,至于为什么输入别的字符就可以了,应该是输入了其他字符后scanf函数就直接返回了(但不是返回出错)。
收起
热心网友
回答时间:2025-01-12 05:33
#include<stdio.h>
#include<math.h>
#include<string.h>
main()
{
float a,b,c,p,x1,x2;
scanf("a=%f,b=%f,c=%f",&a,&b,&c);
p=sqrt (b*b-4*a*c);
x1=(-b+p)/(2*a);
x2=(-b-p)/(2*a);
printf("x1=%f,x2=%f\n",x1,x2);
getchar();
return 0;
}
收起
热心网友
回答时间:2025-01-12 05:27
因为你用了getch()这个是必须要这样的。获得一个字符,就马上显示,没有缓冲。
收起
热心网友
回答时间:2025-01-12 05:25
scanf("a=%f,b=%f,c=%f",&a,&b,&c);
不要随便在scanf中使用'\n',这不是对应输入回车符,而是忽略一切空白符
收起
热心网友
回答时间:2025-01-12 05:26
把scanf 里面那个\n去掉就可以了
本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。
收起