一元二次方程解法

一元二次方程求解有很幾種方法是我們在做題中最常使用的;包括:
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回圈好控制啊!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/264837.html
標籤:其他
