仙女玛卡巴卡(˵¯͒¯͒˵) 2022-12-22 19: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 19: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月30日
  • 已采纳回答 12月22日
  • 创建了问题 12月22日

悬赏问题

  • ¥15 phython读取excel表格报错 ^7个 SyntaxError: invalid syntax 语句报错
  • ¥20 @microsoft/fetch-event-source 流式响应问题
  • ¥15 ogg dd trandata 报错
  • ¥15 高缺失率数据如何选择填充方式
  • ¥50 potsgresql15备份问题
  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?