2_28浅谈

一元二次方程解法

在这里插入图片描述

一元二次方程求解有很几种方法是我们在做题中最常使用的;包括:
1、直接开平方法;
2、配方法;
3、公式法;
4、因式分解法。
如果让计算机去求解,我想公式法应该是直观有效的。
使用公式需要△ = b^2 - 4* a *c进行判别,这里面涉及到开方与乘方的问题,还涉及到虚数的问题。
上网得知,库函数sqrt与pow分别涉及到开方与乘方,虚数的问题没有解决,自己手动变相反数+i,技术菜无奈(=.=)。
如下:
在这里插入图片描述
在这里插入图片描述
突发奇想,给pow函数的变量y传0.5不就相当于开方嘛!
实验证明确实可行!
在这里插入图片描述
题目代码如下

#include <stdio.h>
#include <math.h>
int main()
{
    
    
    float a,b,x1,x2,c,e;
    while(scanf("%f%f%f",&a,&b,&c)!=EOF)
    {
    
    
        if(a==0)
        {
    
    
            printf("Not quadratic equation\n");
        }
        else
        {
    
    
            e=pow(b,2)-4*a*c;
            if(e==0)
            {
    
    
                printf("x1=x2=%.2f\n",-b/(2*a));
            }
            else if(e>0)
            {
    
    
                x2=(-b+sqrt(e))/(2*a);
                x1=(-b-sqrt(e))/(2*a);
                printf("x1=%.2f;x2=%.2f\n",x1,x2);
            }
            else if(e<0)
            {
    
    
                float i;
                x2=sqrt(-e)/(2*a);
                x1=sqrt(-e)/(2*a);
                i=-b/(2*a);
                printf("x1=%.2f-%.2fi;x2=%.2f+%.2fi\n",i,x1,i,x2);
            }
        }
    }
    return 0;
}

几道考察循环的题

在这里插入图片描述

#include <stdio.h>
int main()
{
    
    
    int a,b,c;
    while(scanf("%d",&a)!=EOF)
    {
    
    
        b=a;
        c=a;
        while(a>0)
        {
    
    
            b=c;
            while(b>0)
            {
    
    
                printf("* ");
                b-=1;
            }
            printf("\n");
            a-=1;
        }
    }
    return 0;
}

在这里插入图片描述

#include <stdio.h>
int main()
{
    
    
    int a,i,j;
    while(scanf("%d",&a)!=EOF)
    {
    
    
        for(i=1;i<=a;i++)
        {
    
    
            for(j=1;j<=i;j++)
            {
    
    
                printf("* ");
            }
            printf("\n");
        }
    }
    return 0;
}

在这里插入图片描述

#include <stdio.h>
int main()
{
    
    
    int a,i,j;
    while(scanf("%d",&a)!=EOF)
    {
    
    
        for(i=1;i<=a;i++)
        {
    
    
            for(j=0;j<=a-i;j++)
            {
    
    
                printf("* ");
            }
            printf("\n");
        }
    }
    return 0;
}

在这里插入图片描述

#include <stdio.h>
int main()
{
    
    
    int a,i,j,k;
    while(scanf("%d",&a)!=EOF)
    {
    
    
        for(i=1;i<=a;i++)
        {
    
    
            for(k=0;k<a-i;k++)
            {
    
    
                printf("  ");
            }
            for(j=1;j<=i;j++)
            {
    
    
                printf("* ");
            }
            printf("\n");
        }
    }
    return 0;
}

在这里插入图片描述

#include <stdio.h>
int main()
{
    
    
    int a,i,j,k;
    while(scanf("%d",&a)!=EOF)
    {
    
    
        for(i=1;i<=a;i++)
        {
    
    
            for(k=0;k<a-i;k++)
            {
    
    
                printf(" ");
            }
            for(j=1;j<=i;j++)
            {
    
    
                printf("* ");
            }
            printf("\n");
        }
    }
    return 0;
}

在这里插入图片描述

#include <stdio.h>
int main()
{
    
    
    int a,i,j,k;
    while(scanf("%d",&a)!=EOF)
    {
    
    
        for(i=1;i<=a;i++)
        {
    
    
             for(k=1;k<i;k++)
            {
    
    
                printf(" ");
            }
            for(j=0;j<=a-i;j++)
            {
    
    
                printf("* ");
            }
            printf("\n");
        }
    }
    return 0;
}

除了第一个用了while循环,之后用的都是for循环,还是for循环好控制啊!

猜你喜欢

转载自blog.csdn.net/m0_52751535/article/details/114240164
28
今日推荐