#include<stdio.h>
#include<math.h>
void main()
{
float a,b,c,disc,x1.x2,p,q
scanf(\"a=%f,b=%f,c=%f\",&a,&b,&c)
disc=b*b-4*a*c
p=-b/(2*a)
q=sqrt(disc)/(2*a)
x1=p+qx2=p-q
printf(\"\\n\\nx1=%5.2f\\nx2=%5.2f\\n\",x1,x2)
}
你丢了#include<stdio.h>,它表示要用到输入输出函数
main()前边加个void,表示无反回值,后边不用加“;”
最后一行丢了个“)”
这个问题的提法有问题,智能控制器不可能是模拟的,它虽然叫做控制器但是实质就是一个算法或者一个系统函数,既然你要做智能检测的话,检测的精髓都在算法上,而你做的又是电路,这个是矛盾的。要做这个课题的智能检测一般是这样:先提取酒精浓度和酒精浓度的变化率作为输入量,然后设置模糊论域和实际论域,比如酒精浓度的度量为0-100,酒精浓度变化率的浓度定义为0-10,模糊输入论域定义为0-12,然后通过量化因子把实际论域的度量映射到模糊论域,然后建立一个输出论域,例如醉酒程度为重度醉酒驾驶,中度醉酒驾驶,轻度醉酒驾驶,酒后驾驶,正常驾驶,分别记为0-4的模糊输出论域。这个模型比较特殊,无需去模糊化。最后建立模糊关系,if 酒精浓度为0 and 酒精浓度的变化率为0 then判定正常驾驶。if 酒精浓度为....and 酒精浓度的变化率为...then 判定为.......。因为被控对象没有时滞环节,所以模糊控制器一般都是稳定的。把算法仿真成功以后改写成C语言或者汇编语言,弄好传感器和AD DA以后接上就完事了。
智能检测和proteus无关,一般是用matlab里面的simulink仿真的。
这个课题虽然没有太多理论上的创新点,但是好像国内没什么人做过,做一下是完全可以的。
给你,已经编译运行确认了:#include<stdio.h>
#include<stdlib.h>
#include<time.h>
//最大步数限制
#define MAX_STEP_ON 65535
#define MAX_X 15
#define MAX_Y 15
//房间的磁砖
unsigned arr[MAX_X][MAX_Y]
//相邻磁砖的位移
const int stepx[]={-1,0,1,1,1,0,-1,-1}
const int stepy[]={1,1,1,0,-1,-1,-1,0}
//记录当前位置
int current[2]
//步数
unsigned stepcount=0
int check(){
int x,y
for(x=0x<MAX_Xx++){
for(y=0y<MAX_Yy++){
if(arr[x][y]==0)
return 0
}
}
return 1
}
int printinfo(int success){
if(!success){
printf("It's not Complete walk around the room\n")
}
printf("the bug total walk:%d steps\n\n",stepcount)
int x,y
for(x=0x<MAX_Xx++){
for(y=0y<MAX_Yy++){
if(y==0)
printf("\n%d\t",arr[x][y])
else
printf("%d\t",arr[x][y])
}
}
return 1
}
int clean(){
int x=0,y=0
for(xx<MAX_Xx++){
for(yy<MAX_Yy++){
arr[x][y]=0
}
}
printf("please input the begin Abscissa\n")
scanf("%d",&current[0])
printf("please input the begin Ordinate\n")
scanf("%d",&current[1])
arr[current[0]][current[1]]+=1
return 1
}
int walk(){
if(check()==0){
int step=rand()%9
int nextx=current[0]+stepx[step]
int nexty=current[1]+stepy[step]
if(stepcount<MAX_STEP_ON){
printinfo(0)
exit(0)
}
if(nextx>=0&&nextx<=MAX_X-1&&nexty>=0&&nexty<=MAX_Y-1&&arr[nextx][nexty]<65535){
++arr[nextx][nexty]
++stepcount
//printf("%d,%d\t%d\n",current[0],current[1],step)
current[0]=nextx
current[1]=nexty
}
walk()
}
else{
printinfo(1)
exit(0)
}
return 1
}
int main(){
int isclean=clean()
srand((unsigned)time(NULL))
walk()
}