#include<stdio.h>
#include<math.h>
#include<string.h>
int main(){
void Fun(int a[3]);
FILE *fp;
int a[3]={0},n=0;
char ch,ch2='0';
if((fp=fopen("e:\\data\\Coefficient.txt","r"))!=NULL){
while(!feof(fp)){//判断文件流结束
ch=getc(fp);//读一个字符
if(ch>='0'&&ch<='9'){ ///如果是数字
a[n]=a[n]*10+ch-48; //求当前数字
if((n+1)%3==0){//如果已经有三个系数了
Fun(a);//调用输出函数
n=0;//重置n=0
memset(a,0,sizeof(a)); //重置数组a
}
}else
if(ch!='\n')
n++; //读取下一个
}
fclose(fp);//关闭文件流
}else{//打开不了
printf("文件打开失败!");
return 0;
}
return 0;
}
void Fun(int *a){//输出函数
FILE *fp;
float diat=(float)(a[1]*a[1]-4*a[0]*a[2]);//判别式
printf("%f %d %d %d\n",diat,a[0],a[1],a[2]);
if((fp=fopen("e:\\data\\result.txt","a+"))==NULL){
printf("result.txt打开失败\n");
return;
}
if(a[0]==0){
if(a[1]!=0){
fprintf(fp,"%dx^2+%dx+%d=0的解为:x=%d\n",a[0],a[1],a[2],-a[2]/a[1]);
} else{
if(a[2]==0)
fprintf(fp,"%dx^2+%dx+%d=0的解为:任意实数\n",a[0],a[1],a[2]);
else
fprintf(fp,"%dx^2+%dx+%d=0的解为:无解\n",a[0],a[1],a[2]);
}
}else {
if(diat<0)
fprintf(fp,"%dx^2+%dx+%d=0的解为:无解\n",a[0],a[1],a[2]);
else
fprintf(fp,"%dx^2+%dx+%d=0的解为:x1=%.2f,x2=%.2f\n",a[0],a[1],a[2],(-a[1]+sqrt(diat))/2*a[0],(-a[1]-sqrt(diat))/2*a[0]);
}
}