| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 978 人关注过本帖
标题:C新人求教 出了错误 但是不知但哪里错了
只看楼主 加入收藏
diqiuonline
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-2-23
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
C新人求教 出了错误 但是不知但哪里错了
#include <stdio.h>
#include <math.h>

int main(void)
{
                  //把三个系数保存到计算机中
    int a = 1;  //=不表示相等,表示赋值
    int b = 2;
    int c = 3;
    double delta; //delta存放的是 b*b - 4*a*c
    double x1; //存放一元二次方程的其中一个解
    double x2; //存放一元二次方程的其中一个解

    delta = b*b - 4*a*c;

    if (delta > 0)
    {
        x1 = (-b + sqrt(delta)) / (2*a);
        x2 = (-b - sqrt(delta)) / (2*a);
        printf("该一元二次方程有两个解,x1 = %f, x2 = %f\n", x1,x2);
    }
    else if (delta == 0)
    {
         x1 = (-b) / (2*a);
         x2 = x1;  //右边赋给左边
         printf("该一元二次方程有一个唯一解,x1 = x2" = %f/n", x1);
    }
    else
    {
         printf("无解\n");
    }   

}
2016-02-23 16:11
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:15 
printf("该一元二次方程有一个唯一解,x1 = x2" = %f/n", x1);
中间多了个"
2016-02-23 16:17
diqiuonline
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-2-23
收藏
得分:0 
回复 2楼 grmmylbs
谢谢 好了
2016-02-23 16:23
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:5 
试试这个:同问个问题,如何把一元二次方程的那个平方2显示到X的右上角,我只能打成X2,
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <ctype.h>
int main(int argc, char *argv[])
{
    int a,b,c;float d;       //a,b,c为一元二次方程的3个系数,d为根判别式
    float p,q;            //计算虚数根用   
    float x1,x2;         //方程式的两个根
    const char i='i';        //虚数单位
    char ag='y';                  //判断重复计算
    int ag1;
   
    do{
        system("cls");        
        printf("此程序为求解形如ax2+bx+c=0(a≠0)一元二次方程的根.\n\n");
        printf("仅用于人工解题后核对答案之用,切不可用来为了得到答案用来解题\n\n");
        printf("请依次输入二次项系数 a\n\n");
        printf("请依次输入一次项系数 b\n\n");
        printf("请依次输入常数项 c\n\n三数间敲击Enter间隔\n");
        fflush(stdin);        //清空缓存   
        scanf("%d %d %d",&a,&b,&c);
        printf("\n此时方程为%dX2+%dX+(%d)=0\n\n",a,b,c);
        d=b*b-(4*a*c);
        printf("此时根判别式△=b*b-(4*a*c)=%f\n\n",d);
        printf("按Enter即可得出结果\n\n");
        getch();
        if(d>=0)
            {
            if(d==0)
                {
                    x1=-b/(2*a);
                    x2=x1;
                    printf("此方程式有两个相等的实数根x1=x2=%f\n\n",x1);
                }
            else if(d>0)
                {
                    x1=(-b+sqrt(d))/(2*a);
                    x2=(-b-sqrt(d))/(2*a);
                    printf("此方程式有两个不相等的实数根x1=%f,x2=%f\n\n",x1,x2);
                }
            }
        else
            {
            printf("因为△<0,故此方程式根为虚数\n\n");
            p=-b/(2*a);
            q=sqrt(-d)/(2*a);
            printf("方程有两个虚数根,虚数单位为i\n\n");
            printf("虚根X1=%f+%fi\n\n",p,q);
            printf("虚根X2=%f-%fi\n\n",p,q);   
            }   
            printf("是否再次计算 y or n!\n\n");
            fflush(stdin);
            scanf("%c",&ag);
            if(ag=='n'||ag=='N')
                ag1=0;
            else if(ag=='y'||ag=='Y')
                ag1=1;
        }while(ag1);
    return 0;
}
2016-02-23 16:25
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
回复 4楼 wanglianyi1
字符模式下  想在右上角打平方符号  几乎不可能

DO IT YOURSELF !
2016-02-23 16:27
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
由于整数除以整数返回的是整数,你有两个相同非整数根的情况下会出错,请改正下面。
程序代码:
else if (delta == 0)
    {
         x1 = (-b) / (2.0*a);
         x2 = x1;  //右边赋给左边
         printf("该一元二次方程有一个唯一解,x1 = x2 = %f\n", x1);
    }

   唯实惟新 至诚致志
2016-02-23 16:28
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
回复 5楼 wp231957
好吧,谢谢
2016-02-23 16:30
diqiuonline
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-2-23
收藏
得分:0 
回复 6楼 qq1023569223
嗯嗯 前面有人说出来了 还是感谢你
2016-02-23 16:30
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
回复 5楼 wp231957
你好,另外还有个问题想请教,在输入方程系数的时候,a,b,c如何限制只能输入数字,如果是字符的话提示出错,重新输入呢,需要加什么样的判断呢?
在尝试取scanf的返回值是1还是0来判断,不知道行不行,总觉得字符比如a-z,A-Z在内存中也是数字形式存在的吧,不知道能不能分辨

[此贴子已经被作者于2016-2-23 16:58编辑过]

2016-02-23 16:33
快速回复:C新人求教 出了错误 但是不知但哪里错了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034499 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved