可不可以看一下我这个代码哪里有问题,想了好久(*꒦ິ⌓꒦ີ)?刚学编程(●'◡'●)


#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;
     
}

然后出来的结果是这样的

img


原题是这样的

img

#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);
}

能不能中文翻译一下,这是干嘛的吖