📄 five.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 + -