1.
#include <stdio.h>
#include <math.h>
int main()
{
double a,b,c,m,x1,x2,x3,x;
scanf("%lf %lf %lf",&a,&b,&c);
m=b*b-4*a*c;
if(a == 0)
{
if(b!=0)
{
x=(-c)/b;
if(x==0)
printf("x = %.6g",-x);
else printf("x = %.6g",x);
}
else if(b==0&&c!=0)
{
printf("无解");
}
else if(b==0&&c==0)
{
printf("无穷多解");
}
}
else if(a!=0)
{
if(m>0.000001)
{
x1=(-b+sqrt(m))/(2*a);
x2=(-b-sqrt(m))/(2*a);
printf("x1 = %g, x2 = %g",fabs(x1),x2);
}
if(m<0.000001&&m>-0.000001)
{
x3=fabs(-b/2*a);
printf("x1 = x2 = %g",x3);
}
if(m<0)
{
double p,n;
p=-b/(2*a);
n=sqrt(fabs(m))/(2*a);
printf("x1 = %.6g+%.6gi, ",fabs(p),n);
printf("x2 = %.6g-%.6gi",fabs(p),n);
}
}
return 0;
}
2.
根据scanf()的返回值判断scanf()是否成功读入了指定的数据项数,使程序在用户输入123a时,能输出如下运行结果:
123a↙
Input error!
输入格式: "%d %d"
输出格式:
如果成功读入指定的数据项数,输出格式为:"a = %d, b = %d\n" (注意:等号的两边各有一个空格)
输入非法数据,输出格式为:"Input error!"
#include <stdio.h>
int main()
{
int a,b,c;
c=scanf("%d %d",&a,&b);
if(c==2)
printf("a = %d, b = %d\n",a,b);
else printf("Input error!");
return 0;
}