#include
#include
int main()
{
int a[6]={0,0,0,3,2,26},b[6]={0,0,2,6,2,98},c[6]={0,1,2,3,-12,51};
int i,delta,p,q,x1,x2;
for(i=0;i<6;i++)
{
if(a[i]=b[i]=c[i]=0)
{
printf("a=%d,b=%d,c=%d\n",a[i],b[i],c[i]);
printf("0\n");
printf("any x is a solution.\n");
}
if(a[i]=b[i]=0,c[i]!=0)
{
printf("a=%d,b=%d,c=%d\n",a[i],b[i],c[i]);
printf("1\n");
printf("wrong equation.\n");
}
if(a[i]=0,b[i]!=0)
{
printf("a=%d,b=%d,c=%d\n",a[i],b[i],c[i]);
printf("2\n");
x1=-c[i]/b[i];
printf("%d\n",x1);
}
if(delta>=0)
{
delta=b[i]*b[i]-4*a[i]*c[i];
printf("a=%d,b=%d,c=%d\n",a[i],b[i],c[i]);
printf("3\n");
p=-b[i]/2*a[i];
q=sqrt((delta)/2*a[i]);
x1=p+q;
x2=p-q;
printf("%d %d\n",x1,x2);
}
if(delta<0)
{
printf("a=%d,b=%d,c=%d\n",a[i],b[i],c[i]);
printf("4\n");
printf("no roots\n");
}
}
return 0;
}
然后出来的结果是这样的
#include<stdio.h>
#include<math.h>
int judge(int a, int b, int c) {
if (a == 0) {
if (b == 0) {
if (c == 0)
return 0;
else
return 1;
}
else
return 2;
}
else {
if (b * b - 4 * a * c >= 0)
return 3;
else
return 4;
}
}
void answer(int a, int b, int c) {
switch (judge(a, b, c)) {
case 0:
printf("any x is a solution\n");
break;
case 1:
printf("wrong equation\n");
break;
case 2:
printf("one root:%lf\n", -1.0 * c / b);
break;
case 3:
printf("two roots:%lf %lf\n", (-b + sqrt(1.0 * b * b - 4 * a * c)) / (2 * a), (-b - sqrt(1.0 * b * b - 4 * a * c)) / (2 * a));
break;
case 4:
printf("no roots\n");
break;
}
}
int main() {
answer(0, 0, 0);
answer(0, 0, 1);
answer(0, 2, 2);
answer(3, 6, 3);
answer(2, 2, -12);
answer(12, 34, 56);
}
能不能中文翻译一下,这是干嘛的吖