⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 five.c

📁 KEIL51的一元二次方程的程序
💻 C
字号:
#include <stdio.h>
#include <math.h>
#include <AT89X51.H>
#include <stdlib.h>

void InitCom()
{
	TMOD=0x20;		//定时器设为方式2
	TL1=0xf4;		//设置定时器溢出周期:22.1184M---9600b/s
	TH1=0xf4;
	PCON=0x80;		//电源控制
	TR1=1;          //启动计数器;
	SCON=0x50;      //1工作方式:接受控制
	IE=0;           //中断允许控制:
	TI=1;           //发送中断;
}
void equation()
{
    float x1,x2,s;
	int a,b,c,r;
  	char sf1[6];
	  char *p=sf1;
	char sf2[6];
	  char *q=sf2;
	char sf3[6];
	  char *l=sf3;
////////////////////////
	printf("input a:\n");
 	while(1)
	{
		*p=getchar();
        if(*p==0x0a||p>sf1+4)
		{	
			*p='\0';
		  	break;
		}
		p++;	
	}
	a=atoi(sf1);
//////////////////////////////////////////////
    printf("input b:\n");	
		while(1)
	{
		*q=getchar();
		if(*q==0x0a||q>sf2+4)
		{	
			*q='\0';
		  	break;
		}
		q++;	
	}
	b=atoi(sf2);
/////////////////////////////////////////////	
	printf("input c:\n");
		while(1)
	{
		*l=getchar();
		if(*l==0x0a||l>sf3+4)
		{	
			*l='\0';
		  	break;
		}
		l++;	
	}
	c=atoi(sf3);
//////////////////////////////////////////////	
  r=b*b-4.0*a*c;
  if(r>0)
  {
     s=sqrt(r);
     x1=(-b+s)/(2.0*a);
     x2=(-b-s)/(2.0*a);
     printf("real:x1=%15.7f,x2=%15.7f\n",x1,x2);
   }
     else 
	  if(r==0)
        { x1=-b/(2.0*a);
          x2=-b/(2.0*a);
          printf("double:x1=%15.7f,x2=%15.7f\n",x1,x2);
         }
	     else{
                 x1=-b/(2.0*a);
                 x2=sqrt(-r)/(2.0*a);
                 printf("complex:re=%15.7f,im=%15.7f\n",x1,x2);
              }
}
//////////////////////////////////////////////////////////////
void main()
{
	int i;
	for(i=1;i<1000;i++);
    InitCom();
	while(1)
	equation();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -