【如果只考虑实验A和B】...+c=0的求解只考虑了b2-4ac〉0的情况.如果考虑a、b..._嘻嘻VXyf70
编辑: admin 2017-14-06
-
4
#include
#include
int main(){
double a,b,c,d,x1,x2,shibu,xubu;
\x09fflush(stdin);
\x09while(scanf("%lf%lf%lf",&a,&b,&c)!=EOF)
\x09{
\x09\x09if(a==0 && b==0 && c!=0)
\x09\x09{
\x09\x09\x09printf("Input error!\n");
\x09\x09\x09fflush(stdin);
\x09\x09\x09continue;
\x09\x09}
\x09\x09if(a==0 && b==0 && c==0)
\x09\x09{
\x09\x09\x09printf("Identities.\n");
\x09\x09\x09fflush(stdin);
\x09\x09\x09continue;
\x09\x09}
\x09\x09if(a==0 && b!=0)
\x09\x09{
\x09\x09\x09printf("X=%lf\n",-c/b);
\x09\x09\x09fflush(stdin);
\x09\x09\x09continue;
\x09\x09}
\x09\x09if(a!=0)
\x09\x09{
\x09\x09\x09d=b*b-4*a*c;
\x09\x09\x09if(d>0)
\x09\x09\x09{
\x09\x09\x09\x09x1=(-b-sqrt(d))/(2*a);
\x09\x09\x09\x09x2=(-b+sqrt(d))/(2*a);
\x09\x09\x09\x09printf("X1=%lf\nX2=%lf\n",x1,x2);
\x09\x09\x09\x09fflush(stdin);
\x09\x09\x09\x09continue;
\x09\x09\x09}
\x09\x09\x09if(d==0)
\x09\x09\x09{
\x09\x09\x09\x09printf("X1=X2=%lf\n",-b/(2*a));
\x09\x09\x09\x09fflush(stdin);
\x09\x09\x09\x09continue;
\x09\x09\x09}
\x09\x09\x09if(d<0)
\x09\x09\x09{
\x09\x09\x09\x09shibu=-b/(2*a);
\x09\x09\x09\x09xubu=sqrt(-d)/(2*a);
\x09\x09\x09\x09printf("X1=%lf+%lfi\nX2=%lf-%lfi\n",shibu,xubu,shibu,xubu);
\x09\x09\x09\x09fflush(stdin);
\x09\x09\x09\x09continue;
\x09\x09\x09}
\x09\x09}
\x09}
\x09return 0;
}
互助这道作业题的同学还参与了下面的作业题
题1: 【C语言基础题设a是int型变量,x是float型变量,为了使a=10,x=18.18,函数scanf(“**a=%d,x=%f**\n",&a,&x)执行时,正确的数据输入方式是小弟初学C语言,求指教】
**a=10,x=18.18**
用scanf函数从键盘获取数据时,键盘输入的内容只替换引号内%d %f 等等其他的都不动,当然\n是不用输入的,它只是起换行的作用.要注意空格数哦,空格也是不能出错的,
题2: C语言基础问题
%2d 读1个2位整型数 存入a%*2d -- 跳过输入流中的 1个2位整型数.
所以输入时1234567
就变成12+567=579了
题3: 基础C语言错误老师叫我们写一个基础的C语言但是为什么会出现应用程序错误呢?main(){charname[10];chargender[4];intage;printf("\n\t\t个人信息收集");printf("\n\t\t");printf("\t\t\t你名叫%s,%s,%d",name,gender,age)
scanf("%d",age);
改成
scanf("%d",&age);
题4: C语言初级问题反弹【问题描述】已知一球从高空落下时,每次落地后反弹至原高度的四分之一再落下.编写一程序,从键盘输入整数n和m,求该球从n米的高空落下后,第m次落地时共经过的路程以
你的程序问题太多,我重新写了个.你复制编译看下.
#include
int main()
{
float n,m,sum1,high1;//n为初始高度,m为第m次落下次数,sum1第一次路程,high1第一次反弹
float high = 0;//high为第m次反弹高度
float sum = 0;//sum为第m次落地总路程
int i=2;
printf("请输入n和m的值:");
scanf("%f %f",&n,&m);//如输入40 3注意中间加空格
sum1 = n;
high1 = n/4;
sum = sum1;
high = high1;
while(i++<=m)
{
sum = sum + 2*high;
high = high/4;
}
if(m==1)
{
printf("\n第m次落地时的总路程为:%.2f\n",sum1);
printf("\n第m次落地后反弹的高度为:%.2f\n",high1);
}
else
{
printf("\n第m次落地时的总路程为:%.2f\n",sum);
printf("\n第m次落地后反弹的高度为:%.2f\n",high);
}
return 0;
}