仙女玛卡巴卡(˵¯͒¯͒˵) 2022-12-22 11:19 采纳率: 66.7%
浏览 51
已结题

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


#include<stdio.h>
#include<math.h>
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

展开全部

  • 写回答

2条回答 默认 最新

  • 会修bug的猫 2022-12-22 11:51
    关注
    #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);
    }
    
    

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

    你好强啊

    回复

    谢谢谢谢你(✧∇✧)

    回复
查看更多回答(1条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 12月29日
  • 已采纳回答 12月22日
  • 创建了问题 12月22日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部