一元二次方程计算器源码 | 祭夜博客
  • 欢迎光临,这个博客颜色有点多

一元二次方程计算器源码

其他 msojocs 8年前 (2016-05-15) 2893次浏览 已收录 1个评论 扫描二维码
/*
作品名称:一元二次方程计算器
制作者:祭夜ゐ血泣
目的:计算一元二次方程
功能:能更加便捷的计算一元二次方程
时间:开始制作:2016年2月5日晚(初步制作完成)
      修复bug :2016年2月14日晚---15日早
*/
# include <stdio.h>
# include <math.h>
# include <stdlib.h>
int main(void)
{
    int a=1;
    int b=4;              
    int c=2;
    int q;
    int e;
    char ch;
    
    printf("一元二次方程计算器\nMade in China & by:祭夜ゐ血泣   QQ:1690127128\n完成日:2016-2-15\n");
sy: printf("输入1回车看说明;输入2回车计算:"); scanf("%d", &q);
    
    
    //判断输入的是否为字符如果是显示“请输入数字!”;否则执行else{......}里面的程序代码
    while ((ch = getchar()))
        if (ch != '\n')                       
        {
            printf("请输入数字!\n");goto sy;
        }
        else 
        {
            
            if (q == 1)     //判断输入的值是否为1,是则执行if (q == 1) {.....}中的代码否则跳过此段继续
            {
                printf("说明:\n本计算器计算的方程为a*x*x+b*x+c=0;\n计算器只要求您输入a,b,c三个系数的值\n时间:开始制作:2016年2月5日晚(初步制作完成)\n 修复bug :2016年2月14日晚 --- 15日早\n更新说明:\n本版修复了上一版的输入英文出现无限循环的bug。\n如有其它bug欢迎向我的QQ反馈!!\n");
            se: printf("输入1返回,输入2计算:"); scanf("%d", &q);
                while ((ch = getchar()))
                    if (ch != '\n')
                    {
                        printf("请输入数字!!\n");goto se;
                    }       
                    else if (q == 1)
                    {
                        goto sy;
                    }
                    else if (q != 2)
                    {
                        printf("请重新输入!!\n"); goto se;
                    }
                    
                    else
                    {
                        goto yyec;
                    } //判断输入值是否为数字,如果是数字,数字的值是否为1或2
              }  //以上为输入q的值为1时,执行的代码
            else if (q == 2)//
            {
            yyec:
            sa:
                printf("输入a的值:"); scanf("%d", &a);
                while ((ch = getchar()))
                    if (ch != '\n')
                    {
                        printf("请输入数字!!\n");goto sa;
                    }
                    else
                    {
                        
                            
                    sb:
                        printf("输入b的值:"); scanf("%d", &b);
                        while ((ch = getchar()))
                            if (ch != '\n')
                            {
                                printf("请输入数字!!\n");goto sb;
                            }
                        
                        //输入b的值,并判断是否为数字
                            else {
                            sc:
                                printf("输入c的值:"); scanf("%d", &c);
                                while ((ch = getchar()))
                                    if (ch != '\n')
                                    {
                                        printf("请输入数字!!\n");goto sc;
                                    }
                                    else
                                    {
                                    
                                double daleta = b*b - 4*a*c;
                                double x1;
                                double x2;
                                        
                                    
                                        x1 = (-b - sqrt(daleta)) / (2 * a);
                                        x2 = (-b + sqrt(daleta)) / (2 * a);
                                        printf("该一元二次方程为:%d*x*x+%d*x+%d = 0\n", a, b, c);
                                        printf("daleta = %f\n", daleta);
                                        
                                        if (daleta > 0)
                                        {
                                            printf("该一元二次方程有两个不相等的实数根;x1=%f;x2=%f\n", x1, x2);
                                        }
                                        else if (daleta == 0)
                                        {
                                            printf("该一元二次方程有两个相等的实数根:x1=x2=%f\n", x1);
                                            //两个相等结果
                                        }
                                        else
                                        {
                                            printf("该一元二次方程无解!!\n");
                                        }
                                    cx:
                                        printf("小程问你还想再算吗?(再算1,退出2):");
                                        scanf("%d", &e);
                                        if (e == 1)
                                        {
                                            goto yyec;
                                        }
                                        else if (e == 2)
                                        {
                                            exit(0);
                                        }
                                        else {
                                            printf("祭夜温馨提示:输入错误,请重新输入!!\n"); goto cx;
                                        }
                                        
                                    }
                                //输入c的值,并判断是否为数字
                            }
                    }
            }   //输入的q的值为2时执行的代码
        }
    
        
    return 0;
}
 


祭夜の咖啡馆 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:一元二次方程计算器源码
喜欢 (2)
[1690127128@qq.com]
分享 (0)
发表我的评论
取消评论
OwO表情
贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
  1. 绝对干货,值得收藏!
    自媒体运营2021-11-30 11:48 回复 Windows 10 | Chrome 92.0.4515.107