(1)求一元二次方程x2+x-2=0的根。
对一元二次方程ax2+bx+c=0,若b2-4ac≥0,则方程有两个实根:
x1=(-b+q)/(2*a)
x2=(-b-q)/(2*a)
这里a=1,b=1,c=-2,b2-4ac=9>0,方程有两个实根。首先输入方程系数a、b、c,然后利用上述求根公式计算两个实根x1、x2,其中利用赋值语句q=sqrt(b*b-4*a*c);把中间结果存放在变量q中,这样做的好处是避免重复计算。最后输出结果,输出x1,x2时采用%.0f格式,表示输出实数,但不保留小数位。因为程序中使用了求平方根函数sqrt,它在math.h文件中定义(其他数学类函数也在该文件中定义)。所以用预处理命令#include<math.h>把文件math.h包含到程序中。
/*文件名:chap03_9.cpp*/
#include<stdio.h>
#include<math.h>
void main()
{
float a,b,c,x1,x2,q;
printf("请输入:a,b,c\n");
scanf("%f,%f,%f",&a,&b,&c);
q=sqrt(b*b-4*a*c);
x1=(-b+q)/(2*a);
x2=(-b-q)/(2*a);
printf("x1=%.0f,x2=%.0f\n",x1,x2);
}
程序运行结果为
请输入:a,b,c
输入:1,1,-2↙
输出:x1=1,x2=-2
(2)输入两个整数a和b(设a=1500、b=350),求a除以b的商和余数,编写完整程序并按如下形式输出结果(□表示空格)。
a=□1500,b=□350
a/b=□□4,the□a□mod□b=□100
这个程序由3部分组成:输入部分(输入整型变量a、b的值),计算处理部分(求a/b的商和余数),输出部分(按要求输出结果)。
/*文件名:chap03_10.cpp*/
#include<stdio.h>
void main()
{
int a,b,c,d;
scanf("%d,%d",&a,&b);
c=a/b;/*求a/b的商*/
d=a%b;/*求a/b的余数*/
printf("a=%5d,b=%4d\n",a,b);
printf("a/b=%3d,the a mod b=%4d\n",c,d);
}